關於ORACLE自動統計CBO統計資訊[轉帖]
關於ORACLE自動統計CBO統計資訊
ORACLE10G以後,在建庫後預設就建立了個GATHER_STATS_JOB的定時任務。預設情況下在工作日晚上10:00-6:00和週末全天開啟。它呼叫DBMS_STATS.GATHER_DATABASE_STATS_JOB_PROC的程式收集統計資訊。它檢測統計資訊缺失的物件和陳舊的物件。然後確定優先順序,再開始進行統計資訊。
[@more@]關於ORACLE自動統計CBO統計資訊
ORACLE10G以後,在建庫後預設就建立了個GATHER_STATS_JOB的定時任務。預設情況下在工作日晚上10:00-6:00和週末全天開啟。它呼叫DBMS_STATS.GATHER_DATABASE_STATS_JOB_PROC的程式收集統計資訊。它檢測統計資訊缺失的物件和陳舊的物件。然後確定優先順序,再開始進行統計資訊。
說明:當做完統計資訊後,如果對物件的行數修改達到10%,DBMS_STATS就認為是統計資訊過舊。
可以查詢這個JOB的執行情況:
select * from Dba_Scheduler_Jobs where JOB_NAME ='GATHER_STATS_JOB'
也可以關閉自動統計資訊收集功能:
DBMS_SCHERDULER.DISABLE(‘GATHER_STATS_JOB’);
對與易變物件的變化,可以人工收集統計資訊(DBMS_STATS)外 主要兩種處理方式:
.
一種就是刪除統計資訊。使它的統計資訊為空,對於任何統計資訊缺失的表,oracle會用動態取樣特性自動產生統計資訊。如果使用久的統計資訊 就可能產生錯誤的執行計劃。需要設定optimizer_dynamic_sampling為2(ORACLE10G預設值)或以上都可以啟動此特性。
optimizer_dynamic_sampling ,提供在SQL分析的時候,自動根據不同的Level(0-10)以不同的準確度分析SQL中未被analyze過的表,意在為CBO提供更多的統計信 息。在Oracle9iR2中引入,預設為Level 1,10g預設為2 。
Level 0: Do not dynamically sample the table(s)
Level 1:Sample tables that have not been analyzed if there is more than one table in the query,the table in question has not been analyzed and it has no indexes,and the optimizer determines that the query plan would be affected based on the size of this objects
Level 2:Sample all unanalyzed tables referenced in the query using default sampling amounts(small sample)
Level 3 -- Level 10 ........更詳細的sample而已。
例如:dbms_stats.delete_table_stats(‘table_name’ ,‘VOLATILE_TABLE’)
另一種就是設定為表進行鎖定,這樣就可以不更新統計資訊(注意LOCK表以後,表就不能修改了)。
dbms_stats.lock_table_stats(‘table_name’ ,‘VOLATILE_TABLE’);
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/7490392/viewspace-1008100/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於ORACLE自動統計CBO統計資訊Oracle
- 關於oracle自動收集統計資訊Oracle
- ORACLE10g自動收集CBO統計資訊Oracle
- 雞肋 -- ORACLE10g自動收集CBO統計資訊(ZT)Oracle
- [zt] Oracle10g 自動收集收集CBO統計資訊設定Oracle
- Oracle統計資訊自動收集Oracle
- Oracle11g 統計資訊-----統計資訊自動收集任務Oracle
- Oracle11g 統計資訊——統計資訊自動收集任務Oracle
- Sqlserver關於統計資訊自動建立自動更新的知識點SQLServer
- 效能優化——統計資訊——SQLServer自動更新和自動建立統計資訊選項 (轉載)優化SQLServer
- 關閉及開啟oracle10g統計資訊自動收集功能(轉)Oracle
- [統計資訊系列7] Oracle 11g的自動統計資訊收集Oracle
- 【Oracle】11g Oracle自動收集統計資訊Oracle
- 【統計資訊】Oracle統計資訊Oracle
- ORACLE 11g 自動收集統計資訊Oracle
- 關閉特定物件統計資訊自動收集物件
- Oracle 11g 之自動收集統計資訊Oracle
- Oracle10g 統計資訊的自動收集Oracle
- ORACLE表統計資訊與列統計資訊、索引統計資訊Oracle索引
- 關閉及開啟oracle10g統計資訊自動收集功能Oracle
- Oracle的自動統計資訊不收集直方圖的資訊Oracle直方圖
- Oracle 11g無法自動收集統計資訊Oracle
- oracle 11g自動收集統計資訊介紹Oracle
- oracle 統計資訊過期判斷和自動收集Oracle
- Oracle的奇葩設定之自動統計資訊更新Oracle
- Oracle10g 自動統計資訊(dbms_stats)Oracle
- ORACLE表統計資訊與列統計資訊Oracle
- 【SCRIPT】Oracle統計資訊相關SQLOracleSQL
- Oracle 統計資訊Oracle
- Oracle統計資訊Oracle
- Oracle系統統計資訊Oracle
- 【統計資訊】Oracle常用的收集統計資訊方式Oracle
- 開啟oracle10g統計資訊自動收集功能Oracle
- CBO與動態統計量取樣
- Oracle 統計資訊相關命令彙總Oracle
- Oracle收集統計資訊Oracle
- Oracle 統計資訊收集Oracle
- 收集oracle統計資訊Oracle