ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ORACLE10g自动收集CBO统计信息

ORACLE10g自动收集CBO统计信息

原创 Linux操作系统 作者:xz43 时间:2011-01-19 15:25:12 0 删除 编辑

    从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 where wner='SYS';

JOB_NAME                       LAST_START_DATE
------------------------------ --------------------------------------------------
PURGE_LOG                      18-1月 -11 03.00.00.131783上午 US/PACIFIC
FGR$AUTOPURGE_JOB
GATHER_STATS_JOB               19-11月-09 11.53.03.333710 下午 +08:00
AUTO_SPACE_ADVISOR_JOB         18-1月 -11 10.00.01.349808 下午 +08:00

    然而这个自动化功能已经影响了很多系统的正常运行,晚上10点对于大部分生产系统也并非空闲时段。而自动分析可能导致极为严重的闩锁竞争,进而可能导致数据库Hang或者Crash。

    所以建议最好关闭这个自动统计信息收集功能:

    exec DBMS_SCHEDULER.DISABLE('GATHER_STATS_JOB');

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

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/9399028/viewspace-684228/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2010-11-16

  • 博文量
    420
  • 访问量
    1742401