Oracle 10g 之自动收集统计信息
2015-04-17 09:36
639 查看
从10g开始,Oracle在建库后就默认创建了一个名为GATHER_STATS_JOB的定时任务,用于自动收集CBO的统计信息。这个自动任务默认情况下在工作日晚上10:00-6:00和周末全天开启。
1、查看自动收集统计信息的任务及状态:
2、启用/禁止自动收集统计信息的任务
3、获得当前自动收集统计信息的执行时间
4、修改统计信息执行的时间
5、查看统计信息执行的历史记录
1、查看自动收集统计信息的任务及状态:
SQL> select job_name,schedule_name,enabled,last_start_date,last_run_duration,next_run_date 2 from dba_scheduler_jobs a 3 where job_name = 'GATHER_STATS_JOB'
2、启用/禁止自动收集统计信息的任务
方法一: exec dbms_scheduler.disable('SYS.GATHER_STATS_JOB'); exec dbms_scheduler.enable('SYS.GATHER_STATS_JOB'); 方法二: alter system set "_optimizer_autostats_job"=false scope=spfile; alter system set "_optimizer_autostats_job"=true scope=spfile;
3、获得当前自动收集统计信息的执行时间
SQL> col WINDOW_NAME format a20 SQL> col DURATION format a20 SQL> col REPEAT_INTERVAL format a75 SQL> select t2.window_group_name,t1.window_name,t1.repeat_interval,t1.duration 2 from dba_scheduler_windows t1,dba_scheduler_wingroup_members t2 3 where t1.window_name=t2.window_name; WINDOW_GROUP_NAME WINDOW_NAME REPEAT_INTERVAL DURATION ------------------------------ -------------------- --------------------------------------------------------------------------- -------------------- MAINTENANCE_WINDOW_GROUP WEEKNIGHT_WINDOW freq=daily;byday=MON,TUE,WED,THU,FRI;byhour=22;byminute=0; bysecond=0 +000 08:00:00 MAINTENANCE_WINDOW_GROUP WEEKEND_WINDOW freq=daily;byday=SAT;byhour=0;byminute=0;bysecond=0 +002 00:00:00 SQL>
4、修改统计信息执行的时间
--修改WEEKEND_WINDOW的配置 (改成和WEEKNIGHT_WINDOW相同,即周一~周五,每日的22:00向后8小时,至次日凌晨6点) begin dbms_scheduler.set_attribute('WEEKEND_WINDOW','REPEAT_INTERVAL','freq=daily;byday=SAT,SUN;byhour=22;byminute=0;bysecond=0'); dbms_scheduler.set_attribute('WEEKEND_WINDOW','DURATION','+000 08:00:00'); end; / --若要还原成以前默认设置,可执行如下 --周末两天都是全天: begin dbms_scheduler.set_attribute('WEEKEND_WINDOW','REPEAT_INTERVAL','freq=daily;byday=SAT;byhour=0;byminute=0;bysecond=0'); dbms_scheduler.set_attribute('WEEKEND_WINDOW','DURATION','+002 00:00:00'); end; /
5、查看统计信息执行的历史记录
--JOB运行历史记录 select * from dba_scheduler_job_log where job_name = 'GATHER_STATS_JOB' --正在运行的job select * from dba_scheduler_running_jobs
相关文章推荐
- oracle 10g如何关闭和打开自动收集统计信息
- oracle 10g如何关闭和打开自动收集统计信息
- oracle 10g如何关闭和打开自动收集统计信息
- oracle 10g如何关闭和打开自动收集统计信息
- Oracle 10g 统计信息自动收集功能(automatic statistics gathering)
- Oracle 10g 统计信息自动收集功能(automatic statistics gathering)学习总结 .
- [zt] Oracle 10g 统计信息自动收集功能(automatic statistics gathering)
- oracle 10g如何关闭和打开自动收集统计信息!
- oracle 10g如何关闭和打开自动收集统计信息
- Oracle 10g 统计信息自动收集功能(automatic statistics gathering)学习总结
- 如何关闭和打开oracle 10g自动收集统计信息功能
- Oracle 11g 之自动收集统计信息
- oracle统计信息自动收集机制
- Oracle 11G统计信息自动收集及调整
- [Oracle] 11G自动收集统计信息
- oracle的优化(3)――自动收集统计信息Auto Maintenance Tasks和动态采样optimizer_dynamic_sampling
- Oracle之自动收集统计信息
- oracle 11g 自动收集统计信息 导致IO过大
- oracle自动统计信息的收集原理及实验
- Oracle之自动收集统计信息