如何關閉和開啟oracle 10g自動收集統計資訊功能

來源:互聯網
上載者:User
從Oracle Database 10g開始,Oracle在建庫後就預設建立了一個名為GATHER_STATS_JOB的定時任務,用於自動收集CBO的統計資訊。

這個自動任務預設情況下在工作日晚上10:00-6:00和周末全天開啟。調用DBMS_STATS.GATHER_DATABASE_STATS_JOB_PROC收集統計資訊。該過程首先檢測統計資訊缺失和陳舊的對象。然後確定優先順序,再開始進行統計資訊。

可以通過以下查詢這個JOB的運行情況:

select * from Dba_Scheduler_Jobs where JOB_NAME ='GATHER_STATS_JOB'
其實同在10點啟動並執行Job還有一個AUTO_SPACE_ADVISOR_JOB:

SQL> select JOB_NAME,LAST_START_DATE from dba_scheduler_jobs;
JOB_NAME                      LAST_START_DATE

------------------------------ --------------------------------------

AUTO_SPACE_ADVISOR_JOB        04-DEC-07 10.00.00.692269 PM +08:00

GATHER_STATS_JOB              04-DEC-07 10.00.00.701152 PM +08:00

FGR$AUTOPURGE_JOB

PURGE_LOG                      05-DEC-07 03.00.00.169059 AM PRC

然而這個自動化功能已經影響了很多系統的正常運行,晚上10點對於大部分生產系統也並非空閑時段。

而自動分析可能導致極為嚴重的閂鎖競爭,進而可能導致資料庫Hang或者Crash。

所以建議最好關閉這個自動統計資訊收集功能:

exec DBMS_SCHEDULER.DISABLE('GATHER_STATS_JOB');
自動化永遠而嚴重的隱患相伴隨!

關閉及開啟自動搜集功能,有兩種方法,分別如下:

方法一:

exec dbms_scheduler.disable('SYS.GATHER_STATS_JOB');

exec dbms_scheduler.enable('SYS.GATHER_STATS_JOB');

方法二:

alter system set "_optimizer_autostats_job"=false scope=spfile;

alter system set "_optimizer_autostats_job"=true scope=spfile;

Pfile可以直接修改初始化參數檔案,重新啟動資料庫。

二、AWR預設通過MMON及MMNL進程來每小自動運行一次,為了節省空間的,採集的資料在 7 天后自動清除。

快照頻率和保留時間都可以由使用者修改。要查看當前的設定,您可以使用下面的語句:

select snap_interval, retention

from dba_hist_wr_control;

SNAP_INTERVAL       RETENTION

------------------- -------------------
  +00000 01:00:00.0   +00007 00:00:00.0

這些 SQL 陳述式顯示快照每小時採集一次,採集的資料保留 7 天。要修改設定—例如,快照時間間隔為 20 分鐘,保留時間為兩天—您可以發出以下命令。參數以分鐘為單位。

begin

   dbms_workload_repository.modify_snapshot_settings (

      interval => 20,

      retention => 2*24*60

   );end;

AWR 使用幾個表來儲存採集的統計資料,所有的表都儲存在新的名稱為 SYSAUX 的特定資料表空間中的 SYS 模式下,並且以 WRM$_* 和 WRH$_* 的格式命名。前一種類型儲存中繼資料資訊(如檢查的資料庫和採集的快照),後一種類型儲存實際採集的統計資料。(您可能已經猜到,H 代表“曆史資料 (historical)”而 M 代表“中繼資料 (metadata)”。)在這些表上構建了幾種帶首碼 DBA_HIST_ 的視圖,這些視圖可以用來編寫您自己的效能診斷工具。視圖的名稱直接與表相關;例如,視圖 DBA_HIST_SYSMETRIC_SUMMARY 是在WRH$_SYSMETRIC_SUMMARY 表上構建的。

您的處理計劃一般是有規律的,並且通常基於您對各種事件的瞭解和您處理它們的經驗。現在設想相同的事情由一個引擎來完成,這個引擎採集量度並根據預先確定的邏輯來推出可能的計劃。您的工作不就變得更輕鬆了嗎? 現在在 Oracle Database 10g中推出的這個引擎稱為自動資料庫診斷監控程式 (ADDM)。為了作出決策,ADDM 使用了由 AWR 採集的資料。

在 AWR 進行的每一次快照採集之後,調用 ADDM 來檢查量度並產生建議。因此,實際上您擁有了一個一天二十四小時工作的自動資料庫管理員,它主動地分析資料並產生建議,從而把您解放出來,使您能夠關注更具有戰略意義的問題。

快照預設是自動採集的,但您也可以按需要採集它們。所有的 AWR 功能都在程式包 DBMS_WORKLOAD_REPOSITORY 中實施。要採集一次快照,只需發出下面的命令:

execute dbms_workload_repository.create_snapshot它立即採集一次快照,快照被記錄在表 WRM$_SNAPSHOT 中。採集的量度是針對 TYPICAL 層級的。如果您想採集更詳細的統計資料,您可以在上面的過程中將參數 FLUSH_LEVEL 設定為 ALL。統計資料自動刪除,但也可以通過調用過程 drop_snapshot_range() 來手動刪除。

-
相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.