- 相關(guān)推薦
oracle 10g自動(dòng)收集統(tǒng)計(jì)信息
從Oracle Database 10g開始,Oracle在建庫后就默認(rèn)創(chuàng)建了一個(gè)名為GATHER_STATS_JOB的定時(shí)任務(wù),用于自動(dòng)收集CBO的統(tǒng)計(jì)信息。
這個(gè)自動(dòng)任務(wù)默認(rèn)情況下在工作日晚上10:00-6:00和周末全天開啟。調(diào)用DBMS_STATS.GATHER_DATABASE_STATS_JOB_PROC收集統(tǒng)計(jì)信息。該過程首先檢測(cè)統(tǒng)計(jì)信息缺失和陳舊的對(duì)象。然后確定優(yōu)先級(jí),再開始進(jìn)行統(tǒng)計(jì)信息。
可以通過以下查詢這個(gè)JOB的運(yùn)行情況:
select * from Dba_Scheduler_Jobs where JOB_NAME ='GATHER_STATS_JOB'
其實(shí)同在10點(diǎn)運(yùn)行的Job還有一個(gè)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
然而這個(gè)自動(dòng)化功能已經(jīng)影響了很多系統(tǒng)的正常運(yùn)行,晚上10點(diǎn)對(duì)于大部分生產(chǎn)系統(tǒng)也并非空閑時(shí)段。
而自動(dòng)分析可能導(dǎo)致極為嚴(yán)重的閂鎖競(jìng)爭,進(jìn)而可能導(dǎo)致數(shù)據(jù)庫Hang或者Crash。
所以建議最好關(guān)閉這個(gè)自動(dòng)統(tǒng)計(jì)信息收集功能:
exec DBMS_SCHEDULER.DISABLE('GATHER_STATS_JOB');
自動(dòng)化永遠(yuǎn)而嚴(yán)重的隱患相伴隨!
關(guān)閉及開啟自動(dòng)搜集功能,有兩種方法,分別如下:
方法一:
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可以直接修改初始化參數(shù)文件,重新啟動(dòng)數(shù)據(jù)庫。
二、AWR默認(rèn)通過MMON及MMNL進(jìn)程來每小自動(dòng)運(yùn)行一次,為了節(jié)省空間,采集的數(shù)據(jù)在 7 天后自動(dòng)清除。
快照頻率和保留時(shí)間都可以由用戶修改。要查看當(dāng)前的設(shè)置,您可以使用下面的語句:
select snap_interval, retention
from dba_hist_wr_control;
SNAP_INTERVAL RETENTION
------------------- -------------------
+00000 01:00:00.0 +00007 00:00:00.0
這些 SQL 語句顯示快照每小時(shí)采集一次,采集的數(shù)據(jù)保留 7 天。要修改設(shè)置—例如,快照時(shí)間間隔為 20 分鐘,保留時(shí)間為兩天—您可以發(fā)出以下命令。參數(shù)以分鐘為單位。
begin
dbms_workload_repository.modify_snapshot_settings (
interval => 20,
retention => 2*24*60
);end;
AWR 使用幾個(gè)表來存儲(chǔ)采集的統(tǒng)計(jì)數(shù)據(jù),所有的表都存儲(chǔ)在新的名稱為 SYSAUX 的特定表空間中的 SYS 模式下,并且以 WRM$_* 和 WRH$_* 的格式命名。前一種類型存儲(chǔ)元數(shù)據(jù)信息(如檢查的數(shù)據(jù)庫和采集的快照),后一種類型保存實(shí)際采集的統(tǒng)計(jì)數(shù)據(jù)。(您可能已經(jīng)猜到,H 代表“歷史數(shù)據(jù) (historical)”而 M 代表“元數(shù)據(jù) (metadata)”。)在這些表上構(gòu)建了幾種帶前綴 DBA_HIST_ 的視圖,這些視圖可以用來編寫您自己的性能診斷工具。視圖的名稱直接與表相關(guān);例如,視圖 DBA_HIST_SYSMETRIC_SUMMARY 是在WRH$_SYSMETRIC_SUMMARY 表上構(gòu)建的。
您的處理計(jì)劃一般是有規(guī)律的,并且通;谀鷮(duì)各種事件的了解和您處理它們的經(jīng)驗(yàn),F(xiàn)在設(shè)想相同的事情由一個(gè)引擎來完成,這個(gè)引擎采集量度并根據(jù)預(yù)先確定的邏輯來推出可能的計(jì)劃。您的工作不就變得更輕松了嗎? 現(xiàn)在在 Oracle Database 10g中推出的這個(gè)引擎稱為自動(dòng)數(shù)據(jù)庫診斷監(jiān)控程序 (ADDM)。為了作出決策,ADDM 使用了由 AWR 采集的數(shù)據(jù)。
在 AWR 進(jìn)行的每一次快照采集之后,調(diào)用 ADDM 來檢查量度并生成建議。因此,實(shí)際上您擁有了一個(gè)一天二十四小時(shí)工作的自動(dòng)數(shù)據(jù)庫管理員,它主動(dòng)地分析數(shù)據(jù)并生成建議,從而把您解放出來,使您能夠關(guān)注更具有戰(zhàn)略意義的問題。
快照默認(rèn)是自動(dòng)采集的,但您也可以按需要采集它們。所有的 AWR 功能都在程序包 DBMS_WORKLOAD_REPOSITORY 中實(shí)施。要采集一次快照,只需發(fā)出下面的命令:
execute dbms_workload_repository.create_snapshot它立即采集一次快照,快照被記錄在表 WRM$_SNAPSHOT 中。采集的量度是針對(duì) TYPICAL 級(jí)別的。如果您想采集更詳細(xì)的統(tǒng)計(jì)數(shù)據(jù),您可以在上面的過程中將參數(shù) FLUSH_LEVEL 設(shè)置為 ALL。統(tǒng)計(jì)數(shù)據(jù)自動(dòng)刪除,但也可以通過調(diào)用過程 drop_snapshot_range() 來手動(dòng)刪除。
【oracle 10g自動(dòng)收集統(tǒng)計(jì)信息】相關(guān)文章:
excle自動(dòng)填充及統(tǒng)計(jì)個(gè)數(shù)技巧10-06
Oracle發(fā)展歷程08-25
Oracle認(rèn)證體系介紹01-30
利用Excel實(shí)現(xiàn)成績的自動(dòng)統(tǒng)計(jì)論文09-25
oracle認(rèn)證考試詳情06-09
Oracle DBA職業(yè)要求08-31
Oracle認(rèn)證考試介紹05-03
Oracle認(rèn)證種類介紹07-21