应该有开发测试相关的兄弟常常发现,某些半夜跑的报表系统,在系统开始时候好好的,但是数据量越来越大的情况下,报表系统会
应该有开发测试相关的兄弟常常发现,某些半夜跑的报表系统,在系统开始时候好好的,但是数据量越来越大的情况下,报表系统会越来越慢。
一般我们可以理解为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');