资源描述
一、基础概念
1. 列举几个表连接方式
Answer:等连接(内连接)、非等连接、自连接、外连接(左、右、全)
Or hash join/merge join/nest loop(cluster join)/index join ??
ORACLE 8i,9i 表连接措施。
一般的相等连接: select * from a, b where a.id = b.id; 这个就属于内连接。
对于外连接:
Oracle中能够使用“(+) ”来表示,9i能够使用LEFT/RIGHT/FULL OUTER JOIN
LEFT OUTER JOIN:左外关联
SELECT e.last_name, e.department_id, d.department_name
FROM employees e
LEFT OUTER JOIN departments d
ON (e.department_id = d.department_id);
等价于
SELECT e.last_name, e.department_id, d.department_name
FROM employees e, departments d
WHERE e.department_id=d.department_id(+)
成果为:所有员工及对应部门的统计,包括没有对应部门编号department_id的员工统计。
RIGHT OUTER JOIN:右外关联
SELECT e.last_name, e.department_id, d.department_name
FROM employees e
RIGHT OUTER JOIN departments d
ON (e.department_id = d.department_id);
等价于
SELECT e.last_name, e.department_id, d.department_name
FROM employees e, departments d
WHERE e.department_id(+)=d.department_id
成果为:所有员工及对应部门的统计,包括没有任何员工的部门统计。
FULL OUTER JOIN:全外关联
SELECT e.last_name, e.department_id, d.department_name
FROM employees e
FULL OUTER JOIN departments d
ON (e.department_id = d.department_id);
成果为:所有员工及对应部门的统计,包括没有对应部门编号department_id的员工统计和没有任何员工的部门统计。
ORACLE8i是不直接支持完全外连接的语法,也就是说不能在左右两个表上同时加上(+),下面是在ORACLE8i能够参考的完全外连接语法
select t1.id,t2.id from table1 t1,table t2 where t1.id=t2.id(+)
union
select t1.id,t2.id from table1 t1,table t2 where t1.id(+)=t2.id
连接类型
定义 图示 例子
内连接 只连接匹配的行 select A.c1,B.c2 from A join B on A.c3 = B.c3;
左外连接 包括左边表的所有行(无论右边的表中是否存在与它们匹配的行)以及右边表中所有匹配的行 select A.c1,B.c2 from A left join B on A.c3 = B.c3;
右外连接 包括右边表的所有行(无论左边的表中是否存在与它们匹配的行)以及左边表中所有匹配的行 select A.c1,B.c2 from A right join B on A.c3 = B.c3;
全外连接 包括左、右两个表的所有行,无论在另一边的表中是否存在与它们匹配的行 select A.c1,B.c2 from A full join B on A.c3 = B.c3;
(theta)连接 使用等值以外的条件来匹配左、右两个表中的行 select A.c1,B.c2 from A join B on A.c3 != B.c3;
交叉连接 生成笛卡尔积——它不使用任何匹配或者选用条件,而是直接将一个数据源中的每个行与另一个数据源的每个行一一匹配 select A.c1,B.c2 from A,B;
2. 不借助第三方工具,怎样查看sql的执行计划
I) 使用Explain Plan,查询PLAN_TABLE;
EXPLAIN PLAN
SET STATEMENT_ID=’QUERY1′
FOR
SELECT *
FROM a
WHERE aa=1;
SELECT operation, options, object_name, object_type, ID, parent_id
FROM plan_table
WHERE STATEMENT_ID = ‘QUERY1′
ORDER BY ID;
II)SQLPLUS中的SET TRACE 即可看到Execution Plan Statistics
SET AUTOTRACE ON;
3. 怎样使用CBO,CBO与RULE的区分
IF 初始化参数 OPTIMIZER_MODE = CHOOSE THEN –(8I DEFAULT)
IF 做过表分析
THEN 优化器 Optimizer=CBO(COST); /*高效*/
ELSE
优化器 Optimizer=RBO(RULE); /*高效*/
END IF;
END IF;
区分:
RBO依照规则选择最佳执行途径来运行查询。
CBO依照表统计找到最低成本的访问数据的措施确定执行计划。
使用CBO需要注意:
I) 需要常常对表进行ANALYZE命令进行分析统计;
II) 需要稳定执行计划;
III)需要使用提示(Hint);
使用RULE需要注意:
I) 选择最有效率的表名次序
II) 优化SQL的写法;
在optimizer_mode=choose时,假如表有统计信息(分区表外),优化器将选择CBO,否则选RBO。
RBO遵照简单的分级措施学,使用15种级别要点,当接收到查询,优化器将评定使用到的要点数目,然后选择最佳级别(最少的数量)的执行途径来运行查询。
CBO尝试找到最低成本的访问数据的措施,为了最大的吞吐量或最快的初始响应时间,计算使用不一样的执行计划的成本,并选择成本最低的一个,有关表的数据内容的统计被用于确定执行计划。
4. 怎样定位重要(消耗资源多)的SQL
使用CPU多的用户session
SELECT a.SID, spid, status, SUBSTR (a.program, 1, 40) prog, a.terminal,a.SQL_TEXT, osuser, VALUE / 60 / 100 VALUE
FROM v$session a, v$process b, v$sesstat c
WHERE c.statistic# = 12 AND c.SID = a.SID AND a.paddr = b.addr
ORDER BY VALUE DESC;
select sql_text from v$sql
where disk_reads > 1000 or (executions > 0 and buffer_gets/executions > 30000);
5. 怎样跟踪某个session的SQL
利用TRACE 跟踪
ALTER SESSION SET SQLTRACE ON;
COLUMN SQL format a200;
SELECT machine, sql_text SQL
FROM v$sqltext a, v$session b
WHERE address = sql_address
AND machine = ‘&A’
ORDER BY hash_value, piece;
exec dbms_system.set_sql_trace_in_session(sid,serial#,&sql_trace);
select sid,serial# from v$session where sid = (select sid from v$mystat where rownum = 1);
exec dbms_system.set_ev(&sid,&serial#,&event_10046,&level_12,”);
6. SQL调整最关注的是什么
检查系统的I/O问题
sar-d能检查整个系统的iostat(IO statistics)
查看该SQL的response time(db block gets/consistent gets/physical reads/sorts (disk))
7. 说说你对索引的认识(索引的结构、对dml影响、对查询影响、为何提升查询性能)
索引有B-TREE、BIT、CLUSTER等类型。ORACLE使用了一个复杂的自平衡B-tree结构;一般来说,在表上建立恰当的索引,查询时会改进查询性能。但在进行插入、删除、修改时,同时会进行索引的修改,在性能上有一定的影响。有索引且查询条件能使用索引时,数据库会先度取索引,依照索引内容和查询条件,查询出ROWID,再依照ROWID取出需要的数据。因为索引内容一般比全表内容要少诸多,因此通过先读索引,能减少I/O,提升查询性能。
b-tree index/bitmap index/function index/patitional index(local/global)索引一般能提升select/update/delete的性能,会减少insert的速度,
8. 使用索引查询一定能提升查询的性能吗?为何
一般,通过索引查询数据比全表扫描要快.不过我们也必须注意到它的代价.
索引需要空间来存储,也需要定期维护, 每当有统计在表中增减或索引列被修改时,索引自身也会被修改. 这意味着每条统计的INSERT,DELETE,UPDATE将为此多付出4,5 次的磁盘I/O. 因为索引需要额外的存储空间和处理,那些无须要的索引反而会使查询反应时间变慢.使用索引查询不一定能提升查询性能,索引范围查询(INDEX RANGE SCAN)适合用于两种情况:
基于一个范围的检索,一般查询返回成果集小于表中统计数的30%宜采取;
基于非唯一性索引的检索
索引就是为了提升查询性能而存在的,假如在查询中索引没有提升性能,只能说是用错了索引,或者讲是场所不一样
9. 绑定变量是什么?绑定变量有什么优缺陷?
绑定变量是指在SQL语句中使用变量,变化变量的值来变化SQL语句的执行成果。
优点:使用绑定变量,能够减少SQL语句的解析,能减少数据库引擎消耗在SQL语句解析上的资源。提升了编程效率和可靠性。减少访问数据库的次数, 就能实际上减少ORACLE的工作量。
缺陷:常常需要使用动态SQL的写法,因为参数的不一样,也许SQL的执行效率不一样;
绑定变量是相对文本变量来讲的,所谓文本变量是指在SQL直接书写查询条件,
这么的SQL在不一样条件下需要重复解析,绑定变量是指使用变量来替代直接书写条件,查询bind value在运行时传递,然后绑定执行。
优点是减少硬解析,减少CPU的争用,节约shared_pool
缺陷是不能使用histogram,sql优化比较困难
10. 怎样稳定(固定)执行计划
能够在SQL语句中指定执行计划。使用HINTS;
query_rewrite_enabled = true
star_transformation_enabled = true
optimizer_features_enable = 9.2.0
创建并使用stored outline
11. 和排序有关的内存在8i和9i分别怎样调整,暂时表空间的作用是什么
SORT_AREA_SIZE 在进行排序操作时,假如排序的内容太多,内存里不能所有放下,则需要进行外部排序,
此时需要利用暂时表空间来存储排序的中间成果。
8i中sort_area_size/sort_area_retained_size决定了排序所需要的内存, 假如排序操作不能在sort_area_size中完成,就会用到temp表空间
9i中假如workarea_size_policy=auto时,
排序在pga内进行,一般pga_aggregate_target的1/20能够用来进行disk sort;
假如workarea_size_policy=manual时,排序需要的内存由sort_area_size决定, 在执行order by/group by/distinct/union/create index/index rebuild/minus等操作时,假如在pga或sort_area_size中不能完成,排序将在暂时表空间进行(disk sort),暂时表空间重要作用就是完成系统中的disk sort.
12. 存在表T(a,b,c,d),要依照字段c排序后取第21—30条统计显示,请给出sql
SELECT *
FROM (SELECT ROWNUM AS row_num, tmp_tab.*
FROM (SELECT a, b, c, d
FROM T
ORDER BY c) tmp_tab
WHERE ROWNUM <= 30)
WHERE row_num >= 20
ORDER BY row_num;
create table t(a number(,b number(,c number(,d number();
/
begin
for i in 1 .. 300 loop
insert into t values(mod(i,2),i/2,dbms_random.value(1,300),i/4);
end loop;
end;
/
select * from (select c.*,rownum as rn from (select * from t order by c desc) c) where rn between 21 and 30;
/
select * from (select * from test order by c desc) x where rownum < 30
minus
select * from (select * from test order by c desc) y where rownum < 20 order by 3 desc
相比之 minus性能较差
二:数据库基本概念类
1 Pctused and pctfree 表示什么含义有什么作用
pctused与pctfree控制数据块是否出目前freelist中, pctfree控制数据块中保存用于update的空间,当数据块中的free space小于pctfree设置的空间时,该数据块从freelist中去掉,当块因为dml操作free space不小于pct_used设置的空间时,该数据库块将被添加在freelist链表中。
2 简单描述tablespace / segment / extent / block之间的关系
tablespace: 一个数据库划分为一个或多个逻辑单位,该逻辑单位成为表空间;每一个表空间也许包括一个或多个 Segment;
Segments: Segment指在tablespace中为特定逻辑存储结构分派的空间。每一个段是由一个或多个extent组成。包括数据段、索引段、回滚段和暂时段。
Extents: 一个 extent 由一系列连续的 Oracle blocks组成.ORACLE为通过extent 来给segment分派空间。
Data Blocks:Oracle 数据库最小的I/O存储单位,一个data block对应一个或多个分派给data file的操作系统块。
table创建时,默认创建了一个data segment,每个data segment含有min extents指定的extents数,每个extent据据表空间的存储参数分派一定数量的blocks
3 描述tablespace和datafile之间的关系
一个表空间可包括一个或多个数据文献。表空间利用增加或扩展数据文献扩大表空间,表空间的大小为组成该表空间的数据文献大小的和。一个datafile只能属于一个表空间;
一个tablespace能够有一个或多个datafile,每个datafile只能在一个tablespace内, table中的数据,通过hash算法分布在tablespace中的各个datafile中,tablespace是逻辑上的概念,datafile则在物理上储存了数据库的种种对象。
4 本地管理表空间和字典管理表空间的特点,ASSM有什么特点
本地管理表空间:(9i默认)空闲块列表存储在表空间的数据文献头。
特点:减少数据字典表的竞争,当分派和收缩空间时会产生回滚,不需要合并。
字典管理表空间:(8i默认)空闲块列表存储在数据库中的字典表里.
特点:片由数据字典管理,也许导致字典表的争用。存储在表空间的每一个段都会有不一样的存储字句,需要合并相邻的块;
本地管理表空间(Locally Managed Tablespace简称LMT)
8i以后出现的一个新的表空间的管理模式,通过位图来管理表空间的空间使用。字典管理表空间(Dictionary-Managed Tablespace简称DMT)
8i此前包括以后都还能够使用的一个表空间管理模式,通过数据字典管理表空间的空间使用。动段空间管理(ASSM),它初次出目前Oracle920里有了ASSM,链接列表freelist被位图所取代,它是一个二进制的数组,
能够迅速有效地管理存储扩展和剩余区块(free block),因此能够改进分段存储本质,ASSM表空间上创建的段尚有另外一个称呼喊Bitmap Managed Segments(BMB 段)。
5 回滚段的作用是什么
回滚段用于保存数据修改前的映象,这些信息用于生成读一致性数据库信息、在数据库恢复和Rollback时使用。一个事务只能使用一个回滚段。
事务回滚:当事务修改表中数据的时候,该数据修改前的值(即前影像)会存储在回滚段中,当用户回滚事务(ROLLBACK)时,ORACLE将会利用回滚段中的数据前影像来将修改的数据恢复到本来的值。
事务恢复:当事务正在处理的时候,例程失败,回滚段的信息保存在undo表空间中,ORACLE将在下次打开数据库时利用回滚来恢复未提交的数据。
读一致性:当一个会话正在修改数据时,其他的会话将看不到该会话未提交的修改。 当一个语句正在执行时,该语句将看不到从该语句开始执行后的未提交的修改(语句级读一致性)
当ORACLE执行SELECT语句时,ORACLE依照目前的系统变化号(SYSTEM CHANGE NUMBER-SCN) 来确保任何前于目前SCN的未提交的变化不被该语句处理。能够想象:当一个长时间的查询正在执行时, 若其他会话变化了该查询要查询的某个数据块,ORACLE将利用回滚段的数据前影像来结构一个读一致性视图
6 日志的作用是什么
日志文献(Log File)统计所有对数据库数据的修改,重要是保护数据库以预防故障,以及恢复数据时使用。其特点如下:
a)每一个数据库最少包括两个日志文献组。每个日志文献组最少包括两个日志文献组员。
b)日志文献组以循环方式进行写操作。
c)每一个日志文献组员对应一个物理文献。
统计数据库事务,最大程度地确保数据的一致性与安全性
重做日志文献:含对数据库所做的更改统计,这么万一出现故障能够启用数据恢复,一个数据库最少需要两个重做日志文献
归档日志文献:是重做日志文献的脱机副本,这些副本也许对于从介质失败中进行恢复很必要。
7 SGA重要有那些部分,重要作用是什么
系统全局区(SGA):是ORACLE为实例分派的一组共享缓冲存储区,用于存储数据库数据和控制信息,以实现对数据库数据的管理和操作。
SGA重要包括:
a)共享池(shared pool) :用来存储最近执行的SQL语句和最近使用的数据字典的数据。
b)数据缓冲区 (database buffer cache):用来存储最近从数据文献中读写过的数据。
c)重作日志缓冲区(redo log buffer):用来统计服务或后台进程对数据库的操作。
另外在SGA中尚有两个可选的内存结构:
d)Java pool: 用来存储Java代码。
e)Large pool: 用来存储不与SQL直接有关的大型内存结构。备份、恢复使用。
GA:db_cache/shared_pool/large_pool/java_pool
db_cache: 数据库缓存(Block Buffer)对于Oracle数据库的运转和性能起着非常核心的作用,它占据Oracle数据库SGA(系统共享内存区)的重要部分。Oracle数据库通过使用LRU算法,将最近访问的数据块存储到缓存中,从而优化对磁盘数据的访问.
shared_pool: 共享池的大小对于Oracle 性能来说都是很重要的。共享池中保存数据字典高速缓冲和完全解析或编译的的PL/SQL 块和SQL 语句及控制结构
large_pool: 使用MTS配备时,因为要在SGA中分派UGA来保持用户的会话,就是用Large_pool来保持这个会话内存使用RMAN做备份的时候,要使用Large_pool这个内存结构来做磁盘I/O缓存器
java_pool: 为java procedure预备的内存区域,假如没有使用java proc,java_pool不是必须的
8 Oracle系统进程重要有哪些,作用是什么
数据写进程(DBWR):负责将更改的数据从数据库缓冲区高速缓存写入数据文献
日志写进程(LGWR):将重做日志缓冲区中的更改写入在线重做日志文献
系统监控 (SMON): 检查数据库的一致性如有必要还会在数据库打开时开启数据库的恢复
进程监控 (PMON): 负责在一个Oracle 进程失败时清理资源
检查点进程(CKPT):负责在每当缓冲区高速缓存中的更改永久地统计在数据库中时,更新控制文献和数据文献中的数据库状态信息。
归档进程 (ARCH):在每次日志切换时把已满的日志组进行备份或归档
恢复进程 (RECO): 确保分布式事务的一致性,在分布式事务中,要么同时commit,要么同时rollback;
作业调度器(CJQ ): 负责将调度与执行系统中已定义好的job,完成某些预定义的工作.
三:备份恢复类
1 备份怎样分类
逻辑备份:exp/imp 指定表的逻辑备份
物理备份:
热备份:alter tablespace begin/end backup;
冷备份:脱机备份(database shutdown)
RMAN备份
full backup/incremental backup(累积/差异)
物理备份
物理备份是最重要的备份方式。用于确保数据库在最小的数据库丢失或没有数据丢失的情况下得到恢复。
冷物理
冷物理备份提供了最简单和最直接的措施保护数据库因物理损坏丢失。提议在如下几个情况中使用。
对一个已经存在大最数据量的数据库,在晚间数据库能够关闭,此时应用冷物理备份。
对需对数据库服务器进行升级,(如更换硬盘),此时需要备份数据库信息,并在新的硬盘中恢复这些数据信息,提议采取冷物理备份。
热物理
重要是指备份过程在数据库打开并且用户能够使用的情况下进行。需要执行热物理备份的情况有:
因为数据库性质要求不间断工作,因而此时只能采取热物理备份。
因为备份的要求的时间过长,而数据库只能短时间关闭时。
逻辑备份 (EXP/IMP)
逻辑备份用于实现数据库对象的恢复。但不是基于时间点可完全恢复的备份方略。只能作为联机备份和脱机备份的一个补充。
完全逻辑备份
完全逻辑备份是将整个数据库导出到一个数据库的格式文献中,该文献能够在不一样的数据库版本、操作系统和硬件平台之间进行移植。
指定表的逻辑备份
通过备份工具,能够将指定的数据库表备份出来,这能够防止完全逻辑备份所带来的时间和财力上的浪费。
2 归档是什么含义
有关归档日志:Oracle要将填满的在线日志文献组归档时,则要建立归档日志(archived redo log)。其对数据库备份和恢复有下列用处:
数据库后备以及在线和归档日志文献,在操作系统和磁盘故障中可确保所有提交的事物可被恢复。
在数据库打开和正常系统使用下,假如归档日志是永久保存,在线后备能够进行和使用。
数据库可运行在两种不一样方式下:NOARCHIVELOG方式或ARCHIVELOG 方式
数据库在NOARCHIVELOG方式下使用时,不能进行在线日志的归档,
数据库在ARCHIVELOG方式下运行,可实行在线日志的归档
归档是归档目前的联机redo日志文献。
SVRMGR> alter system archive log current;
数据库只有运行在ARCHIVELOG模式下,并且能够进行自动归档,才能够进行联机备份。有了联机备份才有也许进行完全恢复。
3 假如一个表在-08-04 10:30:00 被drop,在有完善的归档和备份的情况下,怎样恢复
9i 新增的FLASH BACK 应当能够;
Logminer应当能够找出DML。
有完善的归档和备份,先归档目前数据,然后能够先恢复到删除的时间点之前,把DROP 的表导出来,然后再恢复到最后归档时间;
手工拷贝回所有备份的数据文献
Sql〉startup mount;
sql〉alter database recover automatic until time ’-08-04:10:30:00′;
sql〉alter database open resetlogs;
4 rman是什么,有何特点
RMAN(Recovery Manager)是DBA的一个重要工具,用于备份、还原和恢复oracle数据库, RMAN 能够用来备份和恢复数据库文献、归档日志、控制文献、系统参数文献,也能够用来执行完全或不完全的数据库恢复。
RMAN有三种不一样的用户接口:COMMAND LINE方式、GUI 方式(集成在OEM 中的备份管理器)、API 方式(用于集成到第三方的备份软件中)。
具备如下特点:
1)功效类似物理备份,但比物理备份强大N倍;
2)能够压缩空块;
3)能够在块水平上实现增量;
4)能够把备份的输出打包成备份集,也能够按固定大小分割备份集;
5)备份与恢复的过程能够自动管理;
6)能够使用脚本(存在Recovery catalog 中)
7)能够做坏块监测
5 standby的特点
备用数据库(standby database):ORACLE推出的一个高可用性(HIGH AVAILABLE)数据库方案,在主节点与备用节点间通过日志同时来确保数据的同时,备用节点作为主节点的备份,能够实现迅速切换与灾难性恢复,从920开始,还开始支持物理与逻辑备用服务器。
9i中的三种数据保护模式分别是:
1)、MAXIMIZE PROTECTION :最大数据保护与无数据分歧,LGWR将同时传送到备用节点,在主节点事务确认之前,备用节点也必须完全收到日志数据。假如网络不好,引起LGWR不能传送数据,将引起严重的性能问题,导致主节点DOWN机。
2)、MAXIMIZE AVAILABILITY :无数据丢失模式,允许数据分歧,允许异步传送。
正常情况下运行在最大保护模式,在主节点与备用节点的网络断开或连接不正常时,自动切换到最大性能模式,主节点的操作还是能够继续的。在网络不好的情况下有较大的性能影响。
3)、MAXIMIZE PERFORMANCE:这种模式应当能够说是从8i继承过来的备用服务器模式,异步传送,无数据同时检查,也许丢失数据,不过能取得主节点的最大性能。9i在配备DATA GUARD的时候默认就是MAXIMIZE PERFORMANCE
6 对于一个要求恢复时间比较短的系统(数据库50G,天天归档5G),你怎样设计备份方略
数据库比较大逻辑备份没什么必要,天天归档5G,每七天三/周六自动归档10G,每个月RMAN归档全库。应当有standby。
rman/每个月一号 level 0 每七天末/周三 level 1 其他天天level 2
四:系统管理类
1. 对于一个存在系统性能的系统,说出你的诊疗处理思绪
ü 做statspack搜集系统有关信息 了解系统大体情况/确定是否存在参数设置不宜的地方/查看top 5 event/查看top sql等
ü 查v$system_event/v$session_event/v$session_wait 从v$system_event开始,确定需要什么资源(db file sequential read)等,深入研究v$session_event,确定等候事件包括的会话,从v$session_wait确定详细的资源争用情况(p1-p3的值:file_id/block_id/blocks等)
ü 通过v$sql/v$sqltext/v$sqlarea表确定disk_reads、(buffer_gets/executions)值较大的SQL
2. 列举几个诊疗IO、CPU、性能情况的措施
top uptime vmstat iostat statspack sql_trace/tkprof
查v$system_event/v$session_event/v$session_wait
查v$sqlarea(disk_reads或buffer_gets/executions较大的SQL)
或者第三方的监视工具,TOAD就不错。
3. 对statspack有何认识
认识不深。仅限了解。StapSpack是Oracle企业提供的一个搜集数据库运行性能指标的软件包。能够做数据库健康检查报告。
StapSpack是Oracle企业提供的一个搜集数据库运行性能指标的软件包,该软件包从8i起,在9i、10g都有明显的增强
该软件包的辅助表(存储有关参数与搜集的性能指标的表)由最初的25个增加到43个
搜集级别参数由本来的3个(0、5、10)增加到5个(0、5、6、7、10)
通过度析搜集的性能指标,数据库管理员能够详细地了解数据库目前的运行情况,对数据库实例、等候事件、SQL等进行优化调整
利用statspack搜集的snapshot,能够统计制作数据库的各种性能指标的统计趋势图表。
4. 假如系统目前需要在一个很大的表上创建一个索引,你会考虑那些原因,怎样做以尽也许减小对应用的影响
能够先表分析一下,然后测试创建索引前后对应用的性能影响;
需要考虑的是该索引列不常常更新,不是有诸多重复值的情况时, 在大表中使用索引尤其有效. 创建的索引能够跟数据表分不一样表空间存储。
在系统比较空闲时nologging选项(假如有dataguard则不能够使用nologging)
大的sort_ared_size或pga_aggregate_target较大
5. 对raid10 和raid5有何认识
RAID 10(或称RAID 1+0)与RAID 0+1不一样,它是用硬盘驱动器先组成RAID 1阵列,然后在RAID 1阵列之间再组成RAID 0阵列。
RAID 10模式同RAID 0+1模式同样具备良好的数据传输性能,但却比RAID 0+1具备更高的可靠性。RAID 10阵列的实际容量为M×n/2,磁盘利用率为50%。RAID 10也需要最少4个硬盘驱动器组成,因而价格昂贵。
RAID 10的可靠性同RAID 1同样,但因为RAID 10硬盘驱动器之间有数据分割,因而数据传输性能优良。
RAID 5与RAID 3很相同,不一样之处在于RAID 5的奇偶校验信息也同数据同样被分割保存到所有的硬盘驱动器,而不是写入一个指定的硬盘驱动器,从而消除了单个奇偶校验硬盘驱动器的瓶颈问题。RAID 5磁盘阵列的性能比RAID 3有所提升,但仍然需要最少3块硬盘驱动器。其实际容量为M×(n-1),磁盘利用率为(n-1)/n 。
五:综合随意类
1. 你最擅长的是oracle哪部分?
pl/sql及sql优化
2. 喜欢oracle吗?喜欢上论坛吗?或者偏好oracle的哪一部分?
喜欢。PL/SQL比较得心应手。
3. 随意说说你以为oracle最故意思的部分或者最困难的部分
我对数据库的备份/恢复和性能调优经验明显不足,自然以为有些困难。
基于ORACLE的研究应当是个宽广的领域,因此我以为还是故意思的。
4. 为何要选择做DBA呢?
我对数据库的备份/恢复和性能调优经验明显不足,重要是缺乏环境和交流。
因此,算不上什么DBA。不过因此我更需要这么的机会。
不过就整个ORACLE 来说,一直从事与它有关的工作,感情还是颇深的。放弃可惜。并且就技术自身而言我以为自己还是有学习和创新的能力,它的诸如数据仓库,数据挖掘之类的领域也很广。
六:Databases Questions & Answers
1. What are two methods of retrieving SQL?
2. What cursor type do you use to retrieve multiple recordsets?
3. What action do you have to perform before retrieving data from the next result set of a stored procedure?
Move the cursor down one row from its current position. A ResultSet cursor is initially positioned before the first row. Before you can get to the first row, you would need to Move the cursor down by one row ( For ex: in java the first call to next makes the first row the current row; the second call makes the second row the current row, and so on).
4. What is the basic form of a SQL statement to read data out of a table?
SELECT * FROM table_name;
5. What structure can you have the database make to speed up table reads?
The question is not correct. “What structure can you have the dat
展开阅读全文