一:SQL tuning 类

  1:列举几种表连接方式

  2:不借助第三方工具,怎样查看sql的执行计划

  3:如何使用CBO,CBO与RULE的区别

  4:如何定位重要(消耗资源多)的SQL

  5:如何跟踪某个session的SQL

  6:SQL调整最关注的是什么

  7:说说你对索引的认识(索引的结构、对dml影响、对查询影响、为什么提高查询性能)

  8:使用索引查询一定能提高查询的性能吗?为什么

  9:绑定变量是什么?绑定变量有什么优缺点?

  10:如何稳定(固定)执行计划

  11:和排序相关的内存在8i和9i分别怎样调整,临时表空间的作用是什么

  12:存在表T(a,b,c,d),要根据字段c排序后取第21—30条记录显示,请给出sql

  二:数据库基本概念类

  1:pctused and pctfree 表示什么含义有什么作用

  2:简单描述table / segment / extent / block之间的关系

  3:描述tablespace和datafile之间的关系

  4:本地管理表空间和字典管理表空间的特点,ASSM有什么特点

  5:回滚段的作用是什么

  6:日志的作用是什么

  7:SGA主要有那些部分,主要作用是什么

  8:oracle系统进程主要有哪些,作用是什么

  三:备份恢复类

  1:备份如何分类

  2:归档是什么含义

  3:如果一个表在2004-08-04 10:30:00 被drop,在有完善的归档和备份的情况下,如何恢复

  4:rman是什么,有何特点

  5:standby的特点

  6:对于一个要求恢复时间比较短的系统(数据库50G,每天归档5G),你如何设计备份策略

  四:系统管理类

  1:对于一个存在系统性能的系统,说出你的诊断处理思路

  2:列举几种诊断IO、CPU、性能状况的方法

  3:对statspack有何认识

  4:如果系统现在需要在一个很大的表上创建一个索引,你会考虑那些因素,如何做以尽量减小对应用的影响

  5:对raid10 和raid5有何认识

  五:综合随意类

  1:你最擅长的是oracle哪部分?

  2:喜欢oracle吗?喜欢上论坛吗?或者偏好oracle的哪一部分?

  3:随意说说你觉得oracle最有意思的部分或者最困难的部分

  4:为何要选择做DBA呢?



一:SQL tuning 类
1:列举几种表连接方式 答:merge join,hash join,nested loop

2:不借助第三方工具,怎样查看sql的执行计划?
答:sqlplus
set autotrace …
utlxplan.sql 创建 plan_table 表

3:如何使用CBO,CBO与RULE的区别?答:在初始化参数里面设置 optimizer_mode=choose/all_rows/first_row 等可以使用 cbo。
rbo会选择不合适的索引,cbo需要统计信息。

4:如何定位重要(消耗资源多)的SQL?答:根据v$sqlarea 中的逻辑读/disk_read。以及寻找CPU使用过量的session,查出当前session的当前SQL语句,或者:监控WIN平台Oracle的运行

5:如何跟踪某个session的SQL?答:先找出对应的’sid,serial’,然后调用system_system.set_sql_trace_in_session(sid,serial,true);参考:跟踪某个会话

6:SQL调整最关注的是什么?答:逻辑读。IO量

7:说说你对索引的认识(索引的结构、对dml影响、对查询影响、为什么提高查询性能)答:默认的索引是b-tree。
对insert的影响:分裂,要保证tree的平衡。
对delete的影响:删除行的时候要标记改节点为删除。
对update的影响:如果更新表中的索引字段,则要相应的更新索引中的键值。查询中包含索引字段的键值和行的物理地址。

8:使用索引查询一定能提高查询的性能吗?为什么?答:不能。如果返回的行数目较大,使用全表扫描的性能较好。

9:绑定变量是什么?绑定变量有什么优缺点?答:通俗的说,绑定变量就是变量的一个占位符,使用绑定变量可以减少只有变量值不同的语句的解析。

10:如何稳定(固定)执行计划?答:使用stored outline。

11:和排序相关的内存在8i和9i分别怎样调整,临时表空间的作用是什么?答:8i:使用sort_area_size,hash_area_size,每个session分配相同的值,不管有无使用。
9i:使用pga_aggregate来统一管理。临时表空间的作用:
在sort_area_size中不能完成的部分在临时表空间完成,临时表空间在重建索引,创建临时表等都要用到。
还有hash join不能完成的也在临时表空间中做。

12:存在表T(a,b,c,d),要根据字段c排序后取第21—30条记录显示,请给出sql? select a,b,c,d from (select a,b,c,d from T order by c) where rownum<=30
minus
select a,b,c,d from (select a,b,c,d from T order by c) where rownum <=20;
或者:
select * from (select rownum rn,a.* from (select a,b,c,d from T order by c) a )where rn between 21 and 30;