【調優】CBO基礎(八)
直方圖
我們知道統計資訊主要包括:
表的統計資訊:
行數
塊數
平均行長度
列的統計資訊:
列的distinct值數
列的null數
資料分佈
擴充套件資訊
索引的統計資訊:
葉塊數
高度
CF
系統的統計資訊:
Io的效能
Cpu的效能
其中資料分佈可以用直方圖來表現
分為:高度直方圖和頻度直方圖
前面已經探討了各種型別欄位的開銷計算模型,也很容易看出開銷模型的一些缺點,比如,如果欄位上資料傾斜很嚴重,那麼這樣計算而來的開銷可能不是正確的,從而導致cbo會選擇不恰當的執行計劃。
看看兩種不同型別的直方圖:
對於列的distinct值對於row number較小的時候,oracle生成頻率直方圖;而對於distinct 值較多,而沒有足夠的bukect來分這些值的時候,建立的就是高度直方圖。一般來講就是高度直方圖。
可以通過analyze和dbms_stats的相關語句來建立直方圖:
Analyze table table_xxx compute statistics for table for columns id size 1;
exec dbms_stats.gather_table_stats('user_xxx', 'table_xxx',cascade=>false, method_opt=>'for columns col_xxx size 1');
可以測試一下直方圖的效果,資料傾斜比較嚴重的情況,比較有用。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/16179598/viewspace-714030/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【調優】CBO基礎
- 【調優】CBO基礎(六)
- 【調優】CBO基礎(五)
- 【調優】CBO基礎(四)
- 【調優】CBO基礎(三)
- 【調優】CBO基礎(二)
- 【效能調優】效能測試、分析與調優基礎
- 【sql調優】繫結變數與CBOSQL變數
- Java 9 中的 GC 調優基礎JavaGC
- Java 9中的GC調優基礎JavaGC
- 逆向基礎(八)
- Redis 基礎、高階特性與效能調優Redis
- Redis基礎、高階特性與效能調優Redis
- Presto記憶體調優及原理(基礎篇)REST記憶體
- Python基礎(八): 集合Python
- 面試之 Redis 基礎、高階特性與效能調優面試Redis
- 【CBO】基於成本優化器的基本原則(二)優化
- 【CBO】基於成本優化器的基本原則(一)優化
- JVM效能調優與實戰基礎理論篇-下JVM
- 八大基礎排序排序
- JavaSE基礎知識分享(八)Java
- Spark面試題(八)——Spark的Shuffle配置調優Spark面試題
- Redis基礎篇(八)資料分片Redis
- javascript基礎(算數運算子)(八)JavaScript
- JVM調優總結(八)-典型配置舉例2JVM
- Oracle優化器(RBO與CBO)Oracle優化
- Spark SQL 效能優化再進一步 CBO 基於代價的優化SparkSQL優化
- SQL Server調優系列基礎篇(子查詢運算總結)SQLServer
- SQL優化基礎SQL優化
- 袋鼠雲數棧基於CBO在Spark SQL優化上的探索SparkSQL優化
- CBO Cost Formulas基於成本優化器的成本計算公式大全ORM優化公式
- 基於CBO優化器謂詞選擇率的計算方法優化
- JVM引數調優八大技巧之筆記JVM筆記
- Flutter(八)之Flutter的基礎WidgetFlutter
- Java基礎 第一節 第八課Java
- Django基礎八之認證模組---authDjango
- 八大基礎排序總結排序
- SQL Server調優系列基礎篇(並行運算總結篇二)SQLServer並行