exec dbms_stats.gather_schema_stats 手動優化統計[final]
Oracle10g或以上版本。
exec dbms_stats.gather_schema_stats(ownname => 'DFMS', ptions => 'GATHER AUTO',
estimate_percent => dbms_stats.auto_sample_size, -- -- 11g取樣值比較大,可以使用samplesize,10g好像是5~20%,可以根據需要調整
method_opt => 'for all columns size auto', -- 一般第一次收集的時候使用 'for all columns size 1' 刪除所有列上的直方圖,之後可以使用 size auto , 逐漸調整,穩定後推薦使用 'for all columns size repeat'
cascade=>TRUE,
degree => 8 ) ;
轉帖自: http://www.dbform.com/html/category/oracledb/page/6
...
收集直方圖資訊是耗費資源的,因此SKEWONLY不推薦使用。實際上經歷了這麼多版本,SKEWONLY的演算法一直很奇怪,我沒有找到一份文件描述Oracle到底是如何定義SKEWONLY的收集憑據的。
method_opt=>’for columns size auto [column_name]‘
什麼是AUTO?再看一下Oracle官方文件中的定義。
Oracle determines the columns to collect histograms based on data distribution and the workload of the columns.
也就是在SKEWONLY的基礎上額外增加了workload限制,何謂workload?實際上就是我們前面提到的是否在where條件中出現。如果一個列從來沒有出現在where條件中,Oracle就認為是沒有workload的,那麼即使此列上的資料被認為是SKEW的,也不會收集直方圖資訊,只有出現過至少一次,Oracle才會收集。[via Comment by Dbsnake] 該workload資訊可以從資料字典COL_USAGE$中獲得,在資料字典中存在的列才是有workload的。
因此AUTO也是有問題的,N2欄位上的直方圖資訊仍然會收集,這是我們不需要的。注意,在Oracle10g之後的自動統計資訊收集任務中,預設的是FOR ALL COLUMNS SIZE AUTO,這是很有問題的,因此即使是不禁用自動統計資訊收集,也應該通過DBMS_STATS.SET_PARAM儲存過程(在11gR2版本中被SET_GLOBAL_PREFS儲存過程替代)來修改該預設值。通常我們經歷的執行計劃莫名其妙改變,很多場合都是因為Oracle10g之後的這個統計資訊自動收集任務導致的。關於自動統計資訊收集,可以參看:Automatic Statistics Gathering
method_opt=>’for columns size repeat [column_name]‘
只有在已有直方圖資訊的列上再次收集直方圖資訊。這是我們推薦設定為預設值的方式。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/35489/viewspace-629066/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- dbms_stats.gather_schema_stats 新匯入系統優化簡單指令碼優化指令碼
- SQL優化筆記 [final]SQL優化筆記
- 效能優化——統計資訊——SQLServer自動更新和自動建立統計資訊選項 (轉載)優化SQLServer
- 優化器統計自動收集的一點總結優化
- Logical Standby中自動優化統計功能問題 ?優化
- Laravel 數量統計優化Laravel優化
- 效能優化 - Oracle Tuning 總結 3 優化統計優化Oracle
- [總結] Oracle優化 – 分析統計Oracle優化
- SQL優化之統計資訊和索引SQL優化索引
- (mysql優化-3) 系統優化MySql優化
- MySQl 配置InnoDB持久化的優化器統計資訊MySql持久化優化
- 網站轉化率統計分析及優化方案網站優化
- Oracle10g 優化統計資訊(自動)不包含統計分割槽表中的local index ?Oracle優化Index
- JavaScript 效能優化殺手JavaScript優化
- Android 效能優化 ---- 啟動優化Android優化
- 管好統計資訊,開啟SQL優化之門SQL優化
- win10系統優化驅動器怎麼用_win10如何優化驅動器Win10優化
- 自動化客服系統:定義與優勢
- 手機網站如何優化網站優化
- Spark讀Hbase優化 --手動劃分region提高並行數Spark優化並行
- MySQL優化之系統變數優化MySql優化變數
- Oracle優化案例-擴充套件統計資訊(十四)Oracle優化套件
- iOS啟動優化iOS優化
- App啟動優化APP優化
- PHP exec system passthru系統函式PHP函式
- iOS效能優化 - APP啟動時間優化iOS優化APP
- 自動化測試系統開發手記(一)
- 系統優化怎麼做-Tomcat優化優化Tomcat
- oracle效能優化二——作業系統優化Oracle優化作業系統
- 移動端手機網站的怎樣優化?方法攻略篇網站優化
- Spark 讀取 Hbase 優化 --手動劃分 region 提高並行數Spark優化並行
- 移動端手機網站優化的11個注意事項網站優化
- 9i,10g 優化器動態取樣級別引數 -- optimizer_dynamic_sampling (統計優化)優化
- Linux系統程式設計之程式替換:exec 函式族Linux程式設計函式
- 「mysql優化專題」程式設計師面試都用得上的索引優化手冊(5)【面試重點】MySql優化程式設計師面試索引
- 效能優化是個手藝活優化
- mysql優化手冊v1.0MySql優化
- V8 效能優化殺手優化