一份ORACLEDBA面试题一:SQLtuning类1:列举几种表连接方式答:mergejoin,hashjoin,nestedloop2:不借助第三方工具,怎样查看sql的执行计划答:sqlplussetautotrace
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:如何稳定(固定)执行计划答:使用sto