日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
Oracle中怎么獲取執(zhí)行計(jì)劃

今天就跟大家聊聊有關(guān)Oracle中怎么獲取執(zhí)行計(jì)劃,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

公司主營(yíng)業(yè)務(wù):成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競(jìng)爭(zhēng)能力。成都創(chuàng)新互聯(lián)公司是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對(duì)我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。成都創(chuàng)新互聯(lián)公司推出修文免費(fèi)做網(wǎng)站回饋大家。

1. Explain plan
Explain plan以SQL語句作為輸入,得到這條SQL語句的執(zhí)行計(jì)劃,并將執(zhí)行計(jì)劃輸出存儲(chǔ)到計(jì)劃表中,方法如下:
explain plan for select * from t;
select * from table(dbms_xplan.display);
注意:Explain plan只生成執(zhí)行計(jì)劃,并不會(huì)真正執(zhí)行SQL語句,因此產(chǎn)生的執(zhí)行計(jì)劃有可能不準(zhǔn),因?yàn)椋?br/>1)當(dāng)前的環(huán)境可能和執(zhí)行計(jì)劃生成時(shí)的環(huán)境不同;
2)不會(huì)考慮綁定變量的數(shù)據(jù)類型;
3)不進(jìn)行變量窺視。
2. 查詢動(dòng)態(tài)性能視圖
如果你想獲取正在執(zhí)行的或剛執(zhí)行結(jié)束的SQL語句真實(shí)的執(zhí)行計(jì)劃(即獲取庫緩存中的執(zhí)行計(jì)劃),可以到動(dòng)態(tài)性能視圖里查詢。方法如下:
1)獲取SQL語句的游標(biāo)
游標(biāo)分為父游標(biāo)和子游標(biāo),父游標(biāo)由sql_id(或聯(lián)合address和hash_value)字段表示,子游標(biāo)由child_number字段表示。
如果SQL語句正在運(yùn)行,可以從v$session中獲得它的游標(biāo)信息,如:
select status, sql_id, sql_child_number from v$session where status='ACTIVE' and ....
如果知道SQL語句包含某些關(guān)鍵字,可以從v$sql視圖中獲得它的游標(biāo)信息,如:
select sql_id, child_number, sql_text from v$sql where sql_text like '%關(guān)鍵字%‘
2)獲取庫緩存中的執(zhí)行計(jì)劃
為了獲取緩存庫中的執(zhí)行計(jì)劃,可以直接查詢動(dòng)態(tài)性能視圖v$sql_plan和v$sql_plan_statistics_all等,但更方便的方法是:
select * from table(dbms_xplan.display_cursor('sql_id',child_number));
3)獲取前一次執(zhí)行計(jì)劃:
set serveroutput off
select * from table(dbms_xplan.display_cursor(null,null,'ALLSTATS LAST'));
3. AWR報(bào)告
AWR報(bào)告把動(dòng)態(tài)性能視圖中的執(zhí)行計(jì)劃保存到dba_hist_sql_plan視圖中,我們可以采用如下方法查詢AWR中的執(zhí)行計(jì)劃:
select * from table(dbms_xplan.display_awr('sql_id');
4. Autotrace
set autotrace是sqlplus工具的一個(gè)功能,只能在通過sqlplus連接的session中使用,它非常適合在開發(fā)時(shí)測(cè)試SQL語句的性能,有以下幾種參數(shù)可供選擇:
SET AUTOTRACE OFF ---------------- 不顯示執(zhí)行計(jì)劃和統(tǒng)計(jì)信息,這是缺省模式
SET AUTOTRACE ON EXPLAIN ------ 只顯示優(yōu)化器執(zhí)行計(jì)劃
SET AUTOTRACE ON STATISTICS -- 只顯示統(tǒng)計(jì)信息
SET AUTOTRACE ON ----------------- 執(zhí)行計(jì)劃和統(tǒng)計(jì)信息同時(shí)顯示
SET AUTOTRACE TRACEONLY ------ 不真正執(zhí)行,只顯示預(yù)期的執(zhí)行計(jì)劃,通explain plan
5. SQL_TRACE
SQL_TRACE作為初始化參數(shù)可以在實(shí)例級(jí)別啟用,也可以只在會(huì)話級(jí)別啟用,在實(shí)例級(jí)別啟用SQL_TRACE會(huì)導(dǎo)致所有進(jìn)程的活動(dòng)被跟蹤,包括后臺(tái)進(jìn)程及所有用戶進(jìn)程,這通常會(huì)導(dǎo)致比較嚴(yán)重的性能問題,所以在一般情況下,我們使用sql_trace跟蹤當(dāng)前進(jìn)程,方法如下:
SQL> alter session set sql_trace=true;
...被跟蹤的SQL語句...
SQL> alter session set sql_trace=false;
如果要跟蹤其它進(jìn)程,可以通過Oracle提供的系統(tǒng)包DBMS_SYSTEM. SET_SQL_TRACE_IN_SESSION來實(shí)現(xiàn),例如:
SQL> exec dbms_system.set_sql_trace_in_session(sid,serial#,true) --開始跟蹤
SQL> exec dbms_system.set_sql_trace_in_session(sid,serial#,false) --結(jié)束跟蹤
使用tkprof 工具將sql trace 生成的跟蹤文件轉(zhuǎn)換成易讀的格式,用發(fā)如下:
tkprof inputfile outputfile

看完上述內(nèi)容,你們對(duì)Oracle中怎么獲取執(zhí)行計(jì)劃有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。


文章題目:Oracle中怎么獲取執(zhí)行計(jì)劃
網(wǎng)站鏈接:http://www.dlmjj.cn/article/gcosdd.html