eygle.com   eygle.com
eygle.com eygle
eygle.com  
 

« Oracle还是IBM的中文推广力度大? | Blog首页 | DBA需求旺盛 批量招聘DBA »

鸡肋-ORACLE10g自动收集CBO统计信息
modb.pro

从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');

自动化永远而严重的隐患相伴随!

-The End-


历史上的今天...
    >> 2008-12-05文章:
    >> 2006-12-05文章:
           关于版权的一点声明
    >> 2005-12-05文章:

By eygle on 2007-12-05 14:48 | Comments (9) | | 1696 |

9 Comments

这个东西在10.2.0.2有严重的bug,经常会导致mutex竞争。被它搞过很多次。

看来被害过的都深有感触啊!10.2.0.3也一样有严重Bug

只能相信自已为某个特定目的写的自动化角本. 象这种统吃的自动化角本, 不适合的.

俺也被害过一次,那个惨呀.结果停掉后,手工分析一切OK了

有错别字,多加了个R,
Exec DBMS_SCHERDULER.DISABLE('GATHER_STATS_JOB');
应该是SCHEDULER

改正之,谢谢:)

10204搞过几次!

10204碰到了db被hang住了,可否將該job該為每週末執行一次,要如何修改呢?


CopyRight © 2004~2020 云和恩墨,成就未来!, All rights reserved.
数据恢复·紧急救援·性能优化 云和恩墨 24x7 热线电话:400-600-8755 业务咨询:010-59007017-7040 or 7037 业务合作: marketing@enmotech.com