Oracle 表連線 篩選欄位執行計劃不正確
問題: 表SUMM_ADV_CONSUME是分割槽表,發出一個查詢如下
select count(*) from dates T434858, SUMM_ADV_CONSUME T434932 where T434858.DATE_ID = T434932.DATE_ID and T434858.DATE_NAME = '20131202'
產生的執行計劃掃描很多分割槽表,正常情況是一個分割槽表。使用同樣的邏輯查詢,用另個篩選條件date_name2
select count(*) from dates T434858, SUMM_ADV_CONSUME T434932 where T434858.DATE_ID = T434932.DATE_ID and T434858.DATE_NAME2 = to_date('20131105', 'yyyymmdd')
只掃描一個分割槽表,執行計劃正確。 分析兩個欄位發現date_name2上有建唯一索引。 對date_name建立唯一索引也能得出正確的執行計劃。
select count(*) from dates T434858, SUMM_ADV_CONSUME T434932 where T434858.DATE_ID = T434932.DATE_ID and T434858.DATE_NAME = '20131202'
產生的執行計劃掃描很多分割槽表,正常情況是一個分割槽表。使用同樣的邏輯查詢,用另個篩選條件date_name2
select count(*) from dates T434858, SUMM_ADV_CONSUME T434932 where T434858.DATE_ID = T434932.DATE_ID and T434858.DATE_NAME2 = to_date('20131105', 'yyyymmdd')
只掃描一個分割槽表,執行計劃正確。 分析兩個欄位發現date_name2上有建唯一索引。 對date_name建立唯一索引也能得出正確的執行計劃。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16582684/viewspace-1062038/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 統計資訊不正確導致執行計劃的錯誤選擇
- 教你excel表篩選手機號不是11位,wps怎麼篩選不正確的手機號Excel
- 程式中使用繫結變數,執行計劃不正確變數
- rbo下針對表與表之間的連線執行計劃的確定原則!
- Linux計劃任務crontab執行指令碼不正確的問題Linux指令碼
- oracle分割槽表執行計劃Oracle
- Oracle訪問表的執行計劃Oracle
- 解決生產庫date欄位顯示不正確
- 【執行計劃】Oracle 11gR2使用Full outer Joins執行計劃完成全外連線查詢Oracle
- oracle刪除表欄位和oracle表增加欄位Oracle
- 看執行計劃是否正確
- ORACLE執行計劃Oracle
- Sqlserver執行計劃中表的四種連線方式SQLServer
- MongoDB檢視執行計劃方法及相關欄位說明MongoDB
- 快速將下劃線欄位改為駝峰欄位
- oracle 固定執行計劃Oracle
- Oracle sql執行計劃OracleSQL
- oracle sqlprofile 固定執行計劃,並遷移執行計劃OracleSQL
- Runtime.exec執行dos命令不正確
- 【執行計劃】Oracle獲取執行計劃的幾種方法Oracle
- 【Oracle】-【索引-HINT,執行計劃】-帶HINT的索引執行計劃Oracle索引
- ORACLE analyse table方式收集表統計資訊導致SQL執行計劃不準確而效能下降OracleSQL
- 表連線的執行步驟
- 怎樣得到準確的執行計劃
- 【執行計劃】資料訪問方式,連線方式及方法
- 11gr2全外連線優化執行計劃優化
- Oracle執行計劃詳解Oracle
- oracle固定執行計劃--sqlprofileOracleSQL
- Oracle 索引和執行計劃Oracle索引
- Oracle閱讀執行計劃Oracle
- oracle執行計劃相關Oracle
- oracle 執行計劃變更Oracle
- 【優化】Oracle 執行計劃優化Oracle
- oracle 執行計劃設定Oracle
- oracle查詢語句執行計劃中的表消除Oracle
- mybatis左連線需要輸出左表的指定內容與篩選MyBatis
- Oracle中表連線的執行原理Oracle
- 11gr2全外連線最佳化執行計劃