執行計劃的理解.
SORT(UNIQUE)
指把查詢語句的輸出結果變成唯一集合的過程。
1>一種是使用了“DISTINCT”,
2>一種是子查詢以提供者角色向主查詢提供其執行結果。
SELECT order_id,order_date
FROM orders
WHERE order_id in (SELECT order_id
FROM order_item
WHERE item_id = :b1
AND order_qty>100);
前提是先進行子操作,否則就進行過濾操作.
SORT(UNIQUE)操作。如果該子查詢被放在主查詢之後執行,則該排序執行計劃就不會被顯示出來,此時顯示的是FILTER。
SORT(AGGREGATE)
SORT(AGGREGATE)是指在沒有GROUP BY的前提下,使用統計函式對全部資料物件進行運算時所顯示出來的執行計劃。
那麼MIN和MAX如果比該值小則將其替換。(因為索引是排序的,因此索引列值的最小值必然在索引的第一個塊上)。而MAX則是僅僅讀取最後一個索引塊。想要獲得這樣的執行計劃,不能使用WHERE和GROUP BY,當然還要求所要進行統計的列必須是索引的先行列(如果是組合索引,則該列必須位於最前面),並且在SELECT-List中不能新增其他任何額外的操作要求。
SORT(GROUP BY)
GROUP BY而進行的相關操作,為了進行分組就只能進行排序,因此所需分組的資料量越大則代價就越高。
如果想透過GROUP BY 將海量表分為上千個組,在這種對超大型表執行GROUP BY時,就可以明顯地感覺到該操作所需要的代價。當所要排序的資料超過一定量時,其代價就會變得非常大,解決該問題的一個方法就是使用HASH(GROUP BY)。
SORT(JOIN)
SORT(ORDER BY)
count
count操作不需要等待得到整個記錄集,隨著從employee表中返回記錄,rownum計數器進行增量,從而確定每個記錄的rownum.
count stopykey
例2:在rownum偽列上使用一個限定
select id,rownum from employee where rownum<10;
為了實施限定條件,最佳化器用count stopkey操作代替count操作,它將rownum偽列的增量值與限定條件中指定的值進行比較,如果rownum偽列的值大於限定條件中指定的值,則查詢不再返回更多的行!
SORT ORDER BY STOPKEY
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/8568259/viewspace-2105950/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL 5.7 檢視理解SQL執行計劃MySql
- 執行計劃-1:獲取執行計劃
- 分析執行計劃優化SQLORACLE的執行計劃(轉)優化SQLOracle
- 理解索引:MySQL執行計劃詳細介紹索引MySql
- 【執行計劃】Oracle獲取執行計劃的幾種方法Oracle
- 【Oracle】-【索引-HINT,執行計劃】-帶HINT的索引執行計劃Oracle索引
- 分析執行計劃最佳化SQLORACLE的執行計劃(轉)SQLOracle
- 執行計劃
- SQL的執行計劃SQL
- oracle sqlprofile 固定執行計劃,並遷移執行計劃OracleSQL
- 【sql調優之執行計劃】獲取執行計劃SQL
- SYBASE執行計劃
- MySQL 執行計劃MySql
- MySQL執行計劃MySql
- sql 執行計劃SQL
- ORACLE執行計劃Oracle
- 生成執行計劃的方法
- Oracle中檢視已執行sql的執行計劃OracleSQL
- sql執行計劃變更和刪除快取中執行計劃的方法SQL快取
- sqm執行計劃的繫結
- SqlServer的執行計劃如何分析?SQLServer
- 看懂Oracle中的執行計劃Oracle
- 獲取執行計劃的方法
- ORACLE執行計劃的介紹Oracle
- 執行計劃的閱讀方法
- sql的執行計劃 詳解SQL
- ORACLE執行計劃的檢視Oracle
- 執行計劃的代價估算
- oracle執行計劃的使用(EXPLAIN)OracleAI
- ORALCE的執行計劃穩定性
- 檢視執行計劃的方法
- 修改Process Chain的執行計劃AI
- 【PG執行計劃】Postgresql資料庫執行計劃統計資訊簡述SQL資料庫
- oracle 固定執行計劃Oracle
- Oracle sql執行計劃OracleSQL
- explain執行計劃分析AI
- mysql執行計劃explainMySqlAI
- mysql explain 執行計劃MySqlAI