溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

oracle中怎么查看sql執(zhí)行計劃的執(zhí)行順序

發(fā)布時間:2021-09-13 16:31:33 來源:億速云 閱讀:379 作者:chen 欄目:關系型數(shù)據庫

這篇文章主要講解了“oracle中怎么查看sql執(zhí)行計劃的執(zhí)行順序”,文中的講解內容簡單清晰,易于學習與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學習“oracle中怎么查看sql執(zhí)行計劃的執(zhí)行順序”吧!

查看sql執(zhí)行計劃的執(zhí)行順序:

先從最開頭一直連續(xù)往右看,直到看到最右邊并列的地方,對不不并列的,靠右的先執(zhí)行,如果看到并列的,就從上往下看,對于并列的部分,上面的先執(zhí)行

oracle中常見的執(zhí)行計劃

一、表的常見執(zhí)行計劃

1、table access full

2、table access by user rowid

3、table access by index rowid

二、B tree索引相關的執(zhí)行計劃

1、index unique scan

2、index rang scan

3、index full scan

4、 index skip scan

5、index fast full scan

三、與位圖索引相關的執(zhí)行計劃

位圖索引(物理存儲結構為:被索引的鍵值,對應rowid的上限,對應rowid的下限,位圖段(bitmap segment))

位圖段:最大只能為位圖索引葉子塊大小的1/2

位圖索引的物理存儲結構,決定了位圖索引的鎖的粒度在位圖段上,所以位圖索引沒有行鎖,要鎖就是鎖位圖段,而多個數(shù)據行可能對應同一個位圖段,所以位圖索引不適用高并發(fā),頻繁修改的OLTP,會導致嚴重的并發(fā)問題,甚至死鎖

位圖索引相比btree的幾個優(yōu)勢

1、位圖段是壓縮存儲的,所以當索引列的distinct少是,位圖索引會明顯的節(jié)省存儲空間

2、需要在多個列上建索引,位圖索引會顯著減少空間

3、位圖所以可以快捷實現(xiàn)某些and 和or的操作,因為位圖索引可以實現(xiàn)快捷的按位運算

相關的執(zhí)行計劃

1、位圖索引單鍵值掃描bitmap index single value

2、bitmap index rang scan

3、bitmap index full scan

4、bitmap index fast full scan

5、bitmap and

6、bitmap or

7、bitmap minus

使用完位圖索引后會將結果轉換為rowid

bitmap conversion to rowids

四、與表連接相關的執(zhí)行計劃

hash join

nested loops

merge join sort join

hash join anti

nested loops anti

merge join anti sort join

hash join semi

nested loops semi

merge join semi sort join

五、其他典型的執(zhí)行計劃

and equal (index merge)

index join

view 

filter 一種改良的嵌套循環(huán)連接,不像嵌套循環(huán)連接那樣,驅動結果集中有多少記錄,就要訪問多少次被驅動表

sort ,分以下幾種,執(zhí)行計劃中出現(xiàn)了sort 不一定代表必須排序,比如sort aggregate 和buffer sort有可能就不排序

sort aggregate

sort unique

sort join

sort group by

sort order by

buffer sort(統(tǒng)計信息中的sort(memory)和sort(disk)對buffer sort不一定是準的,即使有數(shù)值,也可能排序,也可能不排序),需要通過類似10032事件,或者 select * from table(dbms_xplan.display_cursor('ggtpk4y6089ma',0,'advanced'));來查看具體的信息確定是不是排序了

union/union all

union all 僅對結果集做合并,union相當于先union all再對結果集sort unique

concat

connect by

select empno,ename,mgr from emp start with empno=7839 connect by prior empno=mgr

六、ORACLE里執(zhí)行計劃的穩(wěn)定

1、使用sql profile來穩(wěn)定執(zhí)行計劃 dbms_sqltune

兩種類型 automatic 和manual

automatic不能鎖定執(zhí)行計劃,需要與sql的原統(tǒng)計信息相結合,只能調整執(zhí)行計劃

manual 可以很好的穩(wěn)定執(zhí)行計劃,這是automatic所不具備的

2、SPM (SQL PLAN MANAGEMENT)

11G才有的新功能

感謝各位的閱讀,以上就是“oracle中怎么查看sql執(zhí)行計劃的執(zhí)行順序”的內容了,經過本文的學習后,相信大家對oracle中怎么查看sql執(zhí)行計劃的執(zhí)行順序這一問題有了更深刻的體會,具體使用情況還需要大家實踐驗證。這里是億速云,小編將為大家推送更多相關知識點的文章,歡迎關注!

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI