? ??在SQL語句的執(zhí)行計劃中,包含很多字段項和很多模塊,其不同字段代表了不同的含義且在不同的情形下某些字段、模塊顯示或不顯示,下
面的描述給出了執(zhí)行計劃中各字段的含義以及各模塊的描述。
?????? 有關(guān)執(zhí)行計劃中各字段模塊的描述請參考:
執(zhí)行計劃中各字段各模塊描述
???? ??有關(guān)由SQL語句來獲取執(zhí)行計劃請參考:???
使用 EXPLAIN PLAN 獲取SQL語句執(zhí)行計劃
???? ??有關(guān)使用autotrace來獲取執(zhí)行計劃請參考:
啟用 AUTOTRACE 功能
???? ??有關(guān)display_cursor函數(shù)的使用請參考:?? dbms_xplan之display_cursor函數(shù)的使用
一、執(zhí)行計劃中各字段的描述
??1、基本字段(總是可用的)
???? ??Id??????????????? ?執(zhí)行計劃中每一個操作(行)的標(biāo)識符。如果數(shù)字前面帶有星號,意味著將在隨后提供這行包含的謂詞信息
????? ?Operation? 對應(yīng)執(zhí)行的操作。也叫行源操作
????? ?Name?????? ?操作的對象名稱
??
??2、查詢優(yōu)化器評估信息
????? ?Rows(E-Rows)???? ?預(yù)估操作返回的記錄條數(shù)
?? ????Bytes(E-Bytes)?????? 預(yù)估操作返回的記錄字節(jié)數(shù)
???? ??TempSpc??????????????? 預(yù)估操作使用臨時表空間的大小
??? ???Cost(%CPU)???????? ?預(yù)估操作所需的開銷。在括號中列出了CPU開銷的百分比。注意這些值是通過執(zhí)行計劃計算出來的。換句話說,父操作的開銷包含子操作的開銷
????? ?Time??????????????????????? 預(yù)估執(zhí)行操作所需要的時間(HH:MM:SS)
??
??3、分區(qū)(僅當(dāng)訪問分區(qū)表時下列字段可見)
????? ?Pstart????? 訪問的第一個分區(qū)。如果解析時不知道是哪個分區(qū)就設(shè)為KEY,KEY(I),KEY(MC),KEY(OR),KEY(SQ)
?????? Pstop??? ? 訪問的最后一個分區(qū)。如果解析時不知道是哪個分區(qū)就設(shè)為KEY,KEY(I),KEY(MC),KEY(OR),KEY(SQ)
??
??4、并行和分布式處理(僅當(dāng)使用并行或分布式操作時下列字段可見)
????? ?Inst??????????????? 在分布式操作中,指操作使用的數(shù)據(jù)庫鏈接的名字
????? ?TQ?????????????????在并行操作中,用于從屬線程間通信的表隊列
???? ??IN-OUT???????? 并行或分布式操作間的關(guān)系
???? ??PQ Distrib? ? 在并行操作中,生產(chǎn)者為發(fā)送數(shù)據(jù)給消費者進(jìn)行的分配
??
??5、運行時統(tǒng)計(當(dāng)設(shè)定參數(shù)statistics_level為all或使用gather_plan_statistics提示時,下列字段可見)
????? ?Starts?????? 指定操作執(zhí)行的次數(shù)
???? ??A-Rows?? 操作返回的真實記錄數(shù)
???? ??A-Time?? ?操作執(zhí)行的真實時間(HH:MM:SS.FF)
??
??6、I/O 統(tǒng)計(當(dāng)設(shè)定參數(shù)statistics_level為all或使用gather_plan_statistics提示時,下列字段可見)
??? ???Buffers?? ?執(zhí)行期間進(jìn)行的邏輯讀操作數(shù)量
????? ?Reads??? 執(zhí)行期間進(jìn)行的物理讀操作數(shù)量
????? ?Writes?? ? 執(zhí)行期間進(jìn)行的物理寫操作數(shù)量????????
??
??7、內(nèi)存使用統(tǒng)計
????? ?OMem???????????? 最優(yōu)執(zhí)行所需內(nèi)存的預(yù)估值
??? ???1Mem????????????? 一次通過(one-pass)執(zhí)行所需內(nèi)存的預(yù)估值
????? ?0/1/M?????????????? 最優(yōu)/一次通過/多次通過(multipass)模式操作執(zhí)行的次數(shù)
????? ?Used-Mem??? 最后一次執(zhí)行時操作使用的內(nèi)存量
????? ?Used-Tmp?? ? 最后一次執(zhí)行時操作使用的臨時空間大小。這個字段必須擴大1024倍才能和其他衡量內(nèi)存的字段一致(比如,32k意味著32MB)
???? ??Max-Tmp?????? 操作使用的最大臨時空間大小。這個字段必須擴大1024倍才能和其他衡量內(nèi)存的字段一致(比如,32k意味著32MB)
二、執(zhí)行計劃中各模塊的描述與舉例
??1、預(yù)估的執(zhí)行計劃中的各字段與模塊
??2、實際執(zhí)行計劃中的各字段與模塊???
三、總結(jié)
??由上可知,在不同的情形下可以獲得執(zhí)行計劃的不同信息,而不同信息則展現(xiàn)了SQL語句對應(yīng)的不同情況,因此應(yīng)根據(jù)具體的情形具體分析。??????????????????????????????????????????????????????????????????
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
