GATHER_STATS_JOB 任务

Posted on 2010-03-03 11:29  blackcat  阅读(952)  评论(0编辑  收藏  举报

应该有开发测试相关的兄弟常常发现,某些半夜跑的报表系统,在系统开始时候好好的,但是数据量越来越大的情况下,报表系统会越来越慢。

一般我们可以理解为sql需要优化,存储需要优化等等。

这里,如果我们使用的是Oracle 10G以上版本,就要小心了,有可能是Oracle自己搞的鬼。

Oracle10g增加了一个新的任务,用来自动分析数据库,已增加CBO执行的正确性。这个任务就是GATHER_STATS_JOB,任务定义周一到周五的半夜执行,和周六日全天执行。

出发点很好,但是,大部分业务晚上常常也要跑大的查询,或者执行计划改变,会引起新的性能问题。这个都是可以预见的。

 

下面备忘。

 

查看任务详情:

SELECT owner,job_name,state,last_start_date,last_run_duration,failure_count
    FROM dba_scheduler_jobs WHERE job_name = 'GATHER_STATS_JOB';

select  PROGRAM_ACTION from dba_scheduler_programs where PROGRAM_NAME = 'GATHER_STATS_PROG';


任务执行历史:

SELECT log_id, job_name, status,
           TO_CHAR (log_date, 'DD-MON-YYYY HH24:MI') log_date
     FROM dba_scheduler_job_run_details
     WHERE job_name = 'GATHER_STATS_JOB';

 

禁用任务:

在sysdba下执行:

exec DBMS_SCHEDULER.DISABLE('GATHER_STATS_JOB'); 

 

以下是一个详情描述,转载,所以只要地址

http://space.itpub.net/35489/viewspace-627139 

 

 

Copyright © 2024 blackcat
Powered by .NET 8.0 on Kubernetes