交流(1)-- 執行計劃錯誤問題
前幾天參加了一個專案的資料庫技術交流,就提出的問題提供一些思路:
1、執行計劃錯誤問題
2、分割槽表統計分析耗時太長
一、執行計劃錯誤問題
執行計劃錯誤問題,通常我們可以觀察cardinality值的誤差情況,在語句中加
gather_plan_statistics hint ,具體的例子可以參看前面記錄《oracle 10g如何使用
dbms_xplan分析執行計劃》。
cardinality值是基於統計分析產生的評估值,語句加gather_plan_statistics,使
我們能評估出SQL語句實際輸出的行數與評估輸出的行數的差異情況,當我們發現
兩者值差異較大的時候,需要考慮可能以下的原因造成該差異:
1、表沒有統計,或者統計資訊是stale
2、表的資料分佈不均勻,CBO的模型是所有rows平均分配到distinct value上。
3、where 後面的判斷col1 = A and col2=B,col1和col2之間有個包含關係,比
如:省='福建‘ and 分支機構=’廈門‘,CBO並不知道兩者是包含關係,所有計
算selectivity=selectivity(col1)*selectivity(col2),實際的selectivity=
selectivity(col2),造成計算出來的cardinality值偏差。在11g中引入了
擴充套件統計解決該問題。
4、多個列關聯後引起的問題,如3例子,where a.省=b.省 and a.分支機構= b.
分支機構。
5、where function = 'xxx',這個是老生常談的問題了
6、一些複雜的預測,如>=、<=、!=等表示式,該解決方法只能採用動態取樣方
式解決。
擴充套件統計方法可以參看11g的隨機手冊,命令方式如下:
1、設定收集column group 為300秒
exec dbms_stats.seed_col_usage(null, null, 300)
2、生成column使用報告
select dbms_stats.report_col_usage(USER, 'table_name') from dual;
3、對錶進行擴充套件統計
exec dbms_stats.create_extended_stats(USER, 'table_name');
動態取樣:
10g中,optimizer_dynamic_sample預設為2,可以根據實際設定。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/354732/viewspace-683423/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 執行計劃-1:獲取執行計劃
- MySQL5.6執行計劃錯誤案例分析MySql
- mysql的執行計劃快取問題MySql快取
- autotrace 和explain plan for可能導致執行計劃錯誤AI
- 執行計劃錯誤導致系統負載高負載
- 解決TOAD中執行計劃顯示報錯的問題
- 索引失效系列——統計量過期引起執行計劃錯誤索引
- SQL 執行計劃案例1SQL
- 統計資訊不正確導致執行計劃的錯誤選擇
- 檢視執行計劃出現ORA-22992錯誤
- 11G的SORT GROUP BY NOSORT導致錯誤執行計劃
- SQL執行計劃異常引起的效能問題SQL
- SQL執行計劃異常 引起的效能問題SQL
- 一個執行計劃解析的小問題分析
- 完美的執行計劃導致的效能問題
- 執行計劃的偏差導致的效能問題
- DB2執行計劃(1)DB2
- 由於統計量失真造成SQL執行計劃錯誤一例SQL
- 執行計劃問題導致處理速度時快時慢的問題
- 執行計劃中Cardinality (Estimated Rows, E-Rows) 估算錯誤原因分析
- HttpWebRequest多執行緒效能問題,請求超時的錯誤HTTPWeb執行緒
- Oracle訪問表的執行計劃Oracle
- Oracle 執行計劃 訪問路徑Oracle
- 執行錯誤集
- SQL優化案例-從執行計劃定位SQL問題(三)SQL優化
- Oracle優化案例-從執行計劃定位SQL問題(三)Oracle優化SQL
- 執行計劃
- Android編譯通過,執行編譯錯誤問題總結Android編譯
- scalatest在idea和maven中執行錯誤的問題解決IdeaMaven
- 關於oracle cluster執行runcluvfy.sh錯誤時遇到的問題Oracle
- oracle的執行計劃居然出錯[轉帖]Oracle
- SQL最佳化案例-從執行計劃定位SQL問題(三)SQL
- 基於UNION ALL的分頁查詢執行計劃問題
- 通過執行計劃中的CONCATENATION分析sql問題SQL
- 透過執行計劃中的CONCATENATION分析sql問題SQL
- 8i下sort*排序大小以及執行計劃的問題?排序
- 對比前後執行計劃,發現問題 - 9i
- flink1.14.0在yarn上執行報錯--類載入錯誤--問題Yarn