【分析】对于统计信息收集来讲,每一个生产系统的高峰业务时间和负载特点都是不一样的,假设收集统计信息的触发时间正好在高峰时点,那么一定会对数据库性能造成影响,而且对于统计信息收集来讲还是相当耗费系统资源的一个任务。
【建议】建议自动优化器统计收集调整到空闲时间段执行。
【例】
exec dbms_auto_task_admin.disable(client_name => 'sql tuning advisor',operation=> NULL,window_name => NULL);
exec dbms_auto_task_admin.disable(client_name => 'auto space advisor',operation=> NULL,window_name => NULL);
EXECUTE DBMS_SCHEDULER.DISABLE(name => 'SYS.MONDAY_WINDOW', force=>TRUE);
EXECUTE DBMS_SCHEDULER.DISABLE(name => 'SYS.TUESDAY_WINDOW', force=>TRUE);
EXECUTE DBMS_SCHEDULER.DISABLE(name => 'SYS.WEDNESDAY_WINDOW', force=>TRUE);
EXECUTE DBMS_SCHEDULER.DISABLE(name => 'SYS.THURSDAY_WINDOW', force=>TRUE);
EXECUTE DBMS_SCHEDULER.DISABLE(name => 'SYS.FRIDAY_WINDOW', force=>TRUE);
EXECUTE DBMS_SCHEDULER.DISABLE(name => 'SYS.SATURDAY_WINDOW', force=>TRUE);
EXECUTE DBMS_SCHEDULER.DISABLE(name => 'SYS.SUNDAY_WINDOW', force=>TRUE);
execute dbms_scheduler.set_attribute('MONDAY_WINDOW','RESOURCE_PLAN','');
execute dbms_scheduler.set_attribute('TUESDAY_WINDOW','RESOURCE_PLAN','');
execute dbms_scheduler.set_attribute('WEDNESDAY_WINDOW','RESOURCE_PLAN','');
execute dbms_scheduler.set_attribute('THURSDAY_WINDOW','RESOURCE_PLAN','');
execute dbms_scheduler.set_attribute('FRIDAY_WINDOW','RESOURCE_PLAN','');
execute dbms_scheduler.set_attribute('SATURDAY_WINDOW','RESOURCE_PLAN','');
execute dbms_scheduler.set_attribute('SUNDAY_WINDOW','RESOURCE_PLAN','');
EXEC DBMS_SCHEDULER.SET_ATTRIBUTE('MONDAY_WINDOW', 'duration', '+000 04:00:00');
EXEC DBMS_SCHEDULER.SET_ATTRIBUTE('TUESDAY_WINDOW', 'duration', '+000 04:00:00');
EXEC DBMS_SCHEDULER.SET_ATTRIBUTE('WEDNESDAY_WINDOW', 'duration', '+000 04:00:00');
EXEC DBMS_SCHEDULER.SET_ATTRIBUTE('THURSDAY_WINDOW', 'duration', '+000 04:00:00');
EXEC DBMS_SCHEDULER.SET_ATTRIBUTE('FRIDAY_WINDOW', 'duration', '+000 04:00:00');
EXEC DBMS_SCHEDULER.SET_ATTRIBUTE('SATURDAY_WINDOW', 'duration', '+000 04:00:00');
EXEC DBMS_SCHEDULER.SET_ATTRIBUTE('SUNDAY_WINDOW', 'duration', '+000 04:00:00');
EXECUTE DBMS_SCHEDULER.SET_ATTRIBUTE(name => 'SYS.MONDAY_WINDOW', attribute => 'repeat_interval', value => 'freq=weekly;byday=MON;byhour=2;byminute=0;bysecond=0');
EXECUTE DBMS_SCHEDULER.SET_ATTRIBUTE(name => 'SYS.TUESDAY_WINDOW', attribute => 'repeat_interval', value => 'freq=weekly;byday=TUE;byhour=2;byminute=0;bysecond=0');
EXECUTE DBMS_SCHEDULER.SET_ATTRIBUTE(name => 'SYS.WEDNESDAY_WINDOW', attribute => 'repeat_interval', value => 'freq=weekly;byday=WED;byhour=2;byminute=0;bysecond=0');
EXECUTE DBMS_SCHEDULER.SET_ATTRIBUTE(name => 'SYS.THURSDAY_WINDOW', attribute => 'repeat_interval', value => 'freq=weekly;byday=THU;byhour=2;byminute=0;bysecond=0');
EXECUTE DBMS_SCHEDULER.SET_ATTRIBUTE(name => 'SYS.FRIDAY_WINDOW', attribute => 'repeat_interval', value => 'freq=weekly;byday=FRI;byhour=2;byminute=0;bysecond=0');
EXECUTE DBMS_SCHEDULER.SET_ATTRIBUTE(name => 'SYS.SATURDAY_WINDOW', attribute => 'repeat_interval', value => 'freq=weekly;byday=SAT;byhour=2;byminute=0;bysecond=0');
EXECUTE DBMS_SCHEDULER.SET_ATTRIBUTE(name => 'SYS.SUNDAY_WINDOW', attribute => 'repeat_interval', value => 'freq=weekly;byday=SUN;byhour=2;byminute=0;bysecond=0');
EXECUTE DBMS_SCHEDULER.ENABLE(name => 'SYS.MONDAY_WINDOW');
EXECUTE DBMS_SCHEDULER.ENABLE(name => 'SYS.TUESDAY_WINDOW');
EXECUTE DBMS_SCHEDULER.ENABLE(name => 'SYS.WEDNESDAY_WINDOW');
EXECUTE DBMS_SCHEDULER.ENABLE(name => 'SYS.THURSDAY_WINDOW');
EXECUTE DBMS_SCHEDULER.ENABLE(name => 'SYS.FRIDAY_WINDOW');
EXECUTE DBMS_SCHEDULER.ENABLE(name => 'SYS.SATURDAY_WINDOW');
EXECUTE DBMS_SCHEDULER.ENABLE(name => 'SYS.SUNDAY_WINDOW');