这个自动任务默认情况下在工作日晚上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');
自动化永远而严重的隐患相伴随!
-The End-
附:
留言 (7)
这个东西在10.2.0.2有严重的bug,经常会导致mutex竞争。被它搞过很多次。
Posted by: 玉面飞龙 at December 5, 2007 3:50 PM
看来被害过的都深有感触啊!10.2.0.3也一样有严重Bug
Posted by: eygle at December 5, 2007 3:54 PM
mark一下
Posted by: chriszhang at December 5, 2007 4:12 PM
只能相信自已为某个特定目的写的自动化角本. 象这种统吃的自动化角本, 不适合的.
Posted by: anysql at December 5, 2007 4:20 PM
俺也被害过一次,那个惨呀.结果停掉后,手工分析一切OK了
Posted by: yxyup at December 5, 2007 7:43 PM
有错别字,多加了个R,
Exec DBMS_SCHERDULER.DISABLE('GATHER_STATS_JOB');
应该是SCHEDULER
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12753752/viewspace-1010338/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/12753752/viewspace-1010338/