停掉oracle自带job

状况,昨晚10点有发生前天性能问题,又重新收集了一下就好了,这个时间点就可以定位到是oracle自带的job收集统计信息是有问题的



oracle的自动信息收集功能是通过一个叫GATHER_STATS_JOB的任务来完成的,该任务调用过程dbms_stats.gather_database_stats_job_proc执行信息收集,它会检测哪些对象没有统计信息或者统计信息比较陈旧,将优先对这些对象进行分析。而我们平时手工用的dbms_stats.gather_database_stats,是没有分优先级的,也就是它将对数据里的所有对象进行分析,不管该对象有没有被分析过。GATHER_STATS_JOB任务一般是安排在晚上10pm-6am,周未全天启动。

 SELECT OWNER,
        JOB_NAME,
        to_char(last_start_date, 'yyyy-mm-dd hh24:mi:ss') last_start_date,
        to_char(next_run_date, 'yyyy-mm-dd hh24:mi:ss') next_run_date,
        PROGRAM_NAME,
        JOB_TYPE,
        JOB_ACTION
   FROM DBA_SCHEDULER_JOBS;


GATHER_STATS_JOB 就是这个东西


开关此Job
exec DBMS_SCHEDULER.DISABLE('GATHER_STATS_JOB');
exec DBMS_SCHEDULER.ENABLE('GATHER_STATS_JOB');


oracle的自动信息收集功能是通过一个叫GATHER_STATS_JOB的任务来完成的,该任务调用过程dbms_stats.gather_database_stats_job_proc执行信息收集,它会检测哪些对象没有统计信息或者统计信息比较陈旧,将优先对这些对象进行分析。而我们平时手工用的dbms_stats.gather_database_stats,是没有分优先级的,也就是它将对数据里的所有对象进行分析,不管该对象有没有被分析过。GATHER_STATS_JOB任务一般是安排在晚上10pm-6am,周未全天启动。
我所知道的大部分的正式库都是将此job关闭的,然后再在以后的工作中有需要的时候逐个手动收集。
还有就是,如果要在正式库上收集统计信息的时候一定要选择系统压力小的时候,因为收集统计信息本身就是一件很
消耗资源的事情

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

转载于:http://blog.itpub.net/10678398/viewspace-715521/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值