資源描述:
《oracle經(jīng)典筆試題》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、一:SQLtuning類 1:列舉幾種表連接方式 hashjoin/mergejoin/nestloop(clusterjoin)/indexjoin 2:不借助第三方工具,怎樣查看sql的執(zhí)行計(jì)劃 setautoton explainplansetstatement_id=&item_idfor&sql; select*fromtable(dbms_xplan.display);explainplansetstatement_id='測(cè)試一'forselect(這里可以是很復(fù)雜的查詢)執(zhí)行.然后s
2、elect*fromplan_tableawherea.statement_id='測(cè)試一'就可以看到你的查詢的具體的執(zhí)行計(jì)劃了. 3:如何使用CBO,CBO與RULE的區(qū)別 在optimizer_mode=choose時(shí),如果表有統(tǒng)計(jì)信息(分區(qū)表外),優(yōu)化器將選擇CBO,否則選RBO。RBO遵循簡(jiǎn)單的分級(jí)方法學(xué),使用15種級(jí)別要點(diǎn),當(dāng)接收到查詢,優(yōu)化器將評(píng)估使用到的要點(diǎn)數(shù)目,然后選擇最佳級(jí)別(最少的數(shù)量)的執(zhí)行路徑來(lái)運(yùn)行查詢?! BO嘗試找到最低成本的訪問(wèn)數(shù)據(jù)的方法,為了最大的吞吐量或最快的初始響應(yīng)時(shí)間
3、,計(jì)算使用不同的執(zhí)行計(jì)劃的成本,并選擇成本最低的一個(gè),關(guān)于表的數(shù)據(jù)內(nèi)容的統(tǒng)計(jì)被用于確定執(zhí)行計(jì)劃。 4:如何定位重要(消耗資源多)的SQLselectsql_textfromv$sqlwheredisk_reads>1000or(executions>0andbuffer_gets/executions>30000); 5:如何跟蹤某個(gè)session的SQLexecdbms_system.set_sql_trace_in_session(sid,serial#,&sql_trace);selectsid,se
4、rial#fromv$sessionwheresid=(selectsidfromv$mystatwhererownum=1);execdbms_system.set_ev(&sid,&serial#,&event_10046,&level_12,'');1oracle自帶的sqltrace程序可以跟蹤本地sessionsys:altersystemsetsql_trace=true;對(duì)所有會(huì)話跟蹤schema:altersessionsetsql_trace=true;對(duì)某個(gè)session會(huì)話跟蹤sql語(yǔ)句w
5、ww.zhuanyou8.comIT運(yùn)維中文網(wǎng)用tkprof來(lái)格式化跟蹤文件輸出tkprof輸出內(nèi)容包括1sql語(yǔ)句2統(tǒng)計(jì)信息3explaintable執(zhí)行計(jì)劃2基于DBMS_MONITOR包來(lái)跟蹤會(huì)話,這種情況一般是通過(guò)該程序包可以跟蹤從客戶機(jī)到中間層、再到后端數(shù)據(jù)庫(kù)的任何用戶會(huì)話,從而可以較為容易的標(biāo)識(shí)創(chuàng)建大量工作量的特定用戶。會(huì)話:基于會(huì)話ID和序列號(hào)DBMS_MONITOR.session_trace_enable(sid,serial#,true);DBMS_MONITOR.session_trace
6、_enable(sid,serial#,false);客戶端標(biāo)識(shí)符:允許跨越多個(gè)會(huì)話設(shè)置跟蹤,基于登錄ID指定終端用戶??蛻舳嗽O(shè)置的參數(shù):DBMS_SESSION.SET_IDENTIFIER過(guò)程設(shè)置該值運(yùn)行語(yǔ)句:dbms_monitor.client_id_trace_enable('identifier',true,false);dbms_monitor.client_id_trace_disable('identifier');實(shí)例:基于實(shí)例名指定給定的實(shí)例dbms_monitor.database_tr
7、ace_enable(instance_name=>'orcl');服務(wù)名:指定一組相關(guān)的應(yīng)用程序,使用DBMS_SERVICE.CREATE_SERVICE過(guò)程設(shè)置該值,dbms_monitor.serv_mod_act_trace_enable(service_name=>'orcl1',module_name=>'salary_update',action_name=>'insert_item');dbms_monitor.serv_mod_act_trace_disable(service_name=>
8、'orcl1',module_name=>'salary_update',action_name=>'insert_item');模塊名:開(kāi)發(fā)人員在其應(yīng)用程序代碼中使用DBMS_APPLICATION_INFO.SET_MODULE過(guò)程設(shè)置該值操作名:開(kāi)發(fā)人員在其應(yīng)用程序中使用DBMS_APPLICATION_INFO.SET_ACTION過(guò)程設(shè)置該值trcsess提取跟蹤文件,可以基