更新時(shí)間:2022-05-24 10:09:22 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽4390次
執(zhí)行計(jì)劃是一條查詢(xún)語(yǔ)句在Oracle中的執(zhí)行過(guò)程或訪(fǎng)問(wèn)路徑的描述。
1.目標(biāo) SQL 的正文、sql_id 和執(zhí)行計(jì)劃對(duì)應(yīng)的 plan_hash_value
2.執(zhí)行計(jì)劃主體,主要有內(nèi)部執(zhí)行步驟、執(zhí)行順序、謂詞信息、列信息、Cardinality、Cost 等
執(zhí)行計(jì)劃的額外補(bǔ)充信息,是否動(dòng)態(tài)采用(dynamic sampling)、是否 Cardinality Feedback、是否 SQL Profile
主體 Header
D:序號(hào)
Operation: 當(dāng)前操作的內(nèi)容
Rows: 當(dāng)前操作的 Cardinality,Oracle 估計(jì)當(dāng)前操作的返回結(jié)果集。
Cost:SQL 執(zhí)行的代價(jià)
Time:Oracle 估計(jì)當(dāng)前操作的時(shí)間
Query Block Name
Query Block Name / Object Alias (identified by operation id): --這部分顯示的為查詢(xún)塊名和對(duì)象別名
-------------------------------------------------------------
1 - SEL$1 --SEL$為select 的縮寫(xiě),位于塊1,相應(yīng)的還有DEL$,INS$,UPD$等
3 - SEL$1 / DEPT@SEL$1 --DEPT@SEL$1,對(duì)應(yīng)到執(zhí)行計(jì)劃中的操作ID為3上,即在表DEPT上的查詢(xún),DEPT為別名,下面類(lèi)同
4 - SEL$1 / DEPT@SEL$1
6 - SEL$1 / EMP@SEL$1
7 - SEL$1 / J@SEL$1
Outline Data
Outline Data --提綱部分,這部分將執(zhí)行計(jì)劃中的圖形化方式以文本形式來(lái)呈現(xiàn),即轉(zhuǎn)換為提示符方式
-------------
/*+
BEGIN_OUTLINE_DATA
IGNORE_OPTIM_EMBEDDED_HINTS
OPTIMIZER_FEATURES_ENABLE('11.2.0.2')
DB_VERSION('11.2.0.2')
ALL_ROWS
OUTLINE_LEAF(@"SEL$1")
INDEX(@"SEL$1" "DEPT"@"SEL$1" ("DEPT"."DEPTNO")) --指明對(duì)于DEPT上的訪(fǎng)問(wèn)方式為使用索引
FULL(@"SEL$1" "EMP"@"SEL$1") --指明對(duì)于EMP上的訪(fǎng)問(wèn)方式為全表掃描
FULL(@"SEL$1" "J"@"SEL$1")
LEADING(@"SEL$1" "DEPT"@"SEL$1" "EMP"@"SEL$1" "J"@"SEL$1") --指明前導(dǎo)表
USE_MERGE(@"SEL$1" "EMP"@"SEL$1") --使用USE_MERGE提示,即MERGE SORT排序合并連接
USE_HASH(@"SEL$1" "J"@"SEL$1") --使用USE_HASH提示,即HASH連接
END_OUTLINE_DATA
*/
Predicate Information
Access
通過(guò)某種方式定位了需要的數(shù)據(jù),然后讀取出這些結(jié)果集,叫做 Access。
表示這個(gè)謂詞條件的值將會(huì)影響數(shù)據(jù)的訪(fǎng)問(wèn)路勁(表還是索引)。
Filter
把所有的數(shù)據(jù)都訪(fǎng)問(wèn)了,然后過(guò)濾掉不需要的數(shù)據(jù),這種方式叫做 filter 。
表示謂詞條件的值不會(huì)影響數(shù)據(jù)的訪(fǎng)問(wèn)路勁,只起過(guò)濾的作用。
Column Projection Information
Column Projection Information (identified by operation id): --執(zhí)行時(shí)每一步驟所返回的列,下面的不同步驟返回了不同的列
-----------------------------------------------------------
1 - (#keys=1) "DEPT"."DNAME"[VARCHAR2,14], "EMP"."EMPNO"[NUMBER,22],
"EMP"."ENAME"[VARCHAR2,10], "J"."JOB_DESCRIBE"[VARCHAR2,100]
2 - "DEPT"."DNAME"[VARCHAR2,14], "EMP"."EMPNO"[NUMBER,22],
"EMP"."ENAME"[VARCHAR2,10], "EMP"."JOB"[VARCHAR2,9]
3 - "DEPT"."DEPTNO"[NUMBER,22], "DEPT"."DNAME"[VARCHAR2,14]
4 - "DEPT".ROWID[ROWID,10], "DEPT"."DEPTNO"[NUMBER,22]
5 - (#keys=1) "EMP"."DEPTNO"[NUMBER,22], "EMP"."EMPNO"[NUMBER,22],
"EMP"."ENAME"[VARCHAR2,10], "EMP"."JOB"[VARCHAR2,9]
6 - "EMP"."EMPNO"[NUMBER,22], "EMP"."ENAME"[VARCHAR2,10],
"EMP"."JOB"[VARCHAR2,9], "EMP"."DEPTNO"[NUMBER,22]
7 - "J"."JOB_NAME"[VARCHAR2,50], "J"."JOB_DESCRIBE"[VARCHAR2,100]
Note
動(dòng)態(tài)采樣(dynamic sampling)是 Oracle CBO 優(yōu)化器的一種特性。如果相關(guān)數(shù)據(jù)表沒(méi)有收集過(guò)統(tǒng)計(jì)量,又要使用 CBO 的機(jī)制,就會(huì)引起動(dòng)態(tài)采樣。
相關(guān)閱讀
0基礎(chǔ) 0學(xué)費(fèi) 15天面授
有基礎(chǔ) 直達(dá)就業(yè)
業(yè)余時(shí)間 高薪轉(zhuǎn)行
工作1~3年,加薪神器
工作3~5年,晉升架構(gòu)
提交申請(qǐng)后,顧問(wèn)老師會(huì)電話(huà)與您溝通安排學(xué)習(xí)