資源描述:
《oracle的sql執(zhí)行計劃》由會員上傳分享,免費在線閱讀,更多相關(guān)內(nèi)容在應(yīng)用文檔-天天文庫。
1、日常開發(fā)活動中,有時候需要對oracle執(zhí)行計劃進(jìn)行監(jiān)控,以此來調(diào)優(yōu)程序和數(shù)據(jù)庫方面的性能。常用方法有以下幾種:一、通過PL/SQLDev工具1、直接File->New->ExplainPlanWindow,在窗口中執(zhí)行sql可以查看計劃結(jié)果。其中,Cost表示cpu的消耗,單位為n%,Cardinality表示執(zhí)行的行數(shù),等價Rows。2、先執(zhí)行EXPLAINPLANFOR??select*fromtableAwhereparaA=1,再select*fromtable(DBMS_XPLAN.DISPLAY)便可以看到oracle的執(zhí)行計劃了,看到的結(jié)果和1中的一樣,所以使用
2、工具的時候推薦使用1方法。注意:PL/SQLDev工具的Commandwindow中不支持setautotranceon的命令。還有使用工具方法查看計劃看到的信息不全,有些時候我們需要sqlplus的支持。二、通過sqlplus1、一般情況都是本機(jī)鏈接遠(yuǎn)程服務(wù)器,所以命令如下:sqlplususer/pwd@serviceName????????此處的serviceName為tnsnames.ora中定義的命名空間。2、執(zhí)行setautotraceon,然后執(zhí)行sql語句,會列出以下信息:。。。(省略一些信息)統(tǒng)計信息------------------------------
3、----------------------------?????????1recursivecalls(歸調(diào)用次數(shù))?????????0dbblockgets?????????2consistentgets?????????0physicalreads(物理讀——執(zhí)行SQL的過程中,從硬盤上讀取的數(shù)據(jù)塊個數(shù))?????????0redosize(重做數(shù)——執(zhí)行SQL的過程中,產(chǎn)生的重做日志的大小)???????358bytessentviaSQL*Nettoclient???????366bytesreceivedviaSQL*Netfromclient?????????1S
4、QL*Netroundtripsto/fromclient?????????0sorts(memory)?????在內(nèi)存中發(fā)生的排序?????????0sorts(disk)?????在硬盤中發(fā)生的排序?????????1rowsprocessed省略部分信息和通過PL/SQLDev工具查看執(zhí)行計劃的信息一樣,下面的統(tǒng)計信息是更詳細(xì)的。判斷SQL效率高低不關(guān)通過時間來衡量,還應(yīng)該通過執(zhí)行SQL執(zhí)行狀態(tài)里面的邏輯讀的數(shù)量邏輯讀=(dbblockgets+consistentgets)1、SETAUTOTRACEONEXPLAIN(setautotonexp)SQLPLUS的命令,
5、在執(zhí)行SQL語句的同時顯示執(zhí)行計劃,設(shè)置EXP(LAIN)的目的是只顯示執(zhí)行計劃而不顯示統(tǒng)計信息.。2、SQL>explainplanforselect````````;SQL>select*fromtable(dbms_xplan.display);執(zhí)行了setautotraceonexplain語句之后,接下來的查詢、插入、更新、刪除語句就會顯示執(zhí)行計劃,直到執(zhí)行“setautotraceoff;”語句。如果是設(shè)置了setautotraceon,除了會顯示執(zhí)行計劃之外,還會顯示一些有用的統(tǒng)計信息。執(zhí)行EXPLAINPLANFOR可以只顯示執(zhí)行計劃,然后執(zhí)行如下查詢SQL>s
6、elect*fromtable(dbms_xplan.display);如:SQL>explainplanforselect*fromempwheredeptno='20';Explained.SQL>select*fromtable(dbms_xplan.display);PLAN_TABLE_OUTPUT--------------------------------------------------------------------------------Planhashvalue:3956160932---------------------------------
7、-----------------------------------------
8、Id??
9、Operation?????????
10、Name
11、Rows??
12、Bytes
13、Cost(%CPU)
14、Time?????
15、--------------------------------------------------------------------------
16、???0
17、SELECTSTATEMENT??
18、??????
19、?????5
20、???150
21、?????3???(0)
22、00:00:01
23、
24、*