资源描述:
《dba面试题及参考答案》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、一、SQLtuning类1、列举几种表连接方式?·嵌套循环连接(NESTEDLOOPJOIN)·群集连接(CLUSTERJOIN)·排序合并连接(SORTMERGEJOIN)·笛卡尔连接(CARTESIANJOIN)·哈希连接(HASHJOIN)·索引连接(INDEXJOIN)2、不借助第三方工具,怎样查看sql的执行计划? 检察表plan_table是否存在,若无用utlxplan.sql创建该表。setautotraceon explainplansetstatement_id=&item_idfor&sql; select*from
2、table(dbms_xplan.display); 3、如何使用CBO,CBO与RULE的区别?在实例/会话级设置OPTIMIZER_MODE=CHOOSE,也可以在语句级别用Hint(/*+...*/)来设定。如此,如果表有统计信息(分区表外),优化器将选择CBO,否则选RBO。RBO遵循ORACLE内定规则,当接收到查询,优化器将估算使用到的要点数目,然后选择最佳级别(最少的数量)的执行计划查询。CBO尝试找到最低成本的数据访问方法,为最大吞吐量或最快响应时间,计算使用不同执行计划的成本,并选择成本最低那个,依赖与表的统计信息。4、如何
3、定位重要(消耗资源多)的SQL?SELECT*FROM(SELECTsql_text,buffer_gets,disk_readsFROMv$sqlORDERBYbuffer_gets,disk_readsDESC)WHEREROWNUM<=10;5、如何跟踪某个session的SQL?execdbms_system.set_sql_trace_in_session(sid,serial#,&sql_trace);7selectsid,serial#fromv$sessionwheresid=(selectsidfromv$mystat
4、whererownum=1);execdbms_system.set_ev(&sid,&serial#,&event_10046,&level_12,'');6、SQL调整最关注的是什么?调整的目的就是为了消耗最小的资源来完成功能,通过查看执行计划和各种统计信息来分辨调整后的sql对资源的耗费情况;查看该SQL的responsetime(dbblockgets/consistentgets/physicalreads/sorts(disk))7、说说你对索引的认识(索引的结构、对dml影响、为什么提高查询性能)?
5、b-treeindexbitmapindexfunctionindexpatitionalindex(local/global)索引通常能提高select/update/delete的性能,会降低insert的速度。8、使用索引查询一定能提高查询的性能吗?为什么?索引就是为了提高查询性能而存在的,如果在查询中索引没有提高性能,只能说是用错了索引,或者讲是场合不同。9、绑定变量是什么?绑定变量有什么优缺点? 绑定变量是相对文本变量来讲的,所谓文本变量是指在SQL直接书写查询条件,这样的SQL在不同条件下需要反复解析,绑定变量是指使用变量来代替直
6、接书写条件,查询bindvalue在运行时传递,然后绑定执行。优点是减少硬解析,降低CPU的争用,节省shared_pool;缺点是不能使用histogram,sql优化比较困难。10、如何稳定(固定)执行计划? query_rewrite_enabled=true star_transformation_enabled=true(determineswhetheracost-basedquerytransformationwillbeappliedtostarqueries.) optimizer_features_enable=9.2
7、.0(利用这个参数的设置,可以查看一条SQL在不同版本的优化器的执行情况)创建并使用storedoutline。711、和排序相关的内存在8i和9i分别怎样调整,临时表空间的作用是什么?8i中,sort_area_size/sort_area_retained_size决定了排序所需要的内存,如果排序操作不能在sort_area_size中完成,就会用到temp表空间9i中,如果workarea_size_policy=auto时,排序在pga内进行,通常pga_aggregate_target的1/20可以用来进行disksort;如果wor
8、karea_size_policy=manual时,排序需要的内存由sort_area_size决定。 在执行orderby/groupby/dis