Oracle 11g自动收集统计信息任务时间如何修改

71次阅读
没有评论

共计 3330 个字符,预计需要花费 9 分钟才能阅读完成。

这篇文章将为大家详细讲解有关 Oracle 11g 自动收集统计信息任务时间如何修改,丸趣 TV 小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

在 oracle 11g 部署完之后,自动收集统计信息的时间是 22:00–2:00,共 4 个小时。
但是业务在这个时间段往往是高峰期,给本已紧张的系统资源带来更大的负担。所以,我们尽量把自动执行的时间改到空闲的时段。

获得当前自动收集统计信息的执行时间
col REPEAT_INTERVAL for a70
select t1.window_name,t1.repeat_interval,t1.duration from dba_scheduler_windows t1,dba_scheduler_wingroup_members t2
where t1.window_name=t2.window_name and t2.window_group_name in (MAINTENANCE_WINDOW_GROUP , BSLN_MAINTAIN_STATS_SCHED  

WINDOW_NAME                    REPEAT_INTERVAL                                                        DURATION
—————————— ———————————————————————- ——————-
MONDAY_WINDOW                  freq=daily;byday=MON;byhour=22;byminute=0; bysecond=0                  +000 04:00:00
TUESDAY_WINDOW                 freq=daily;byday=TUE;byhour=22;byminute=0; bysecond=0                  +000 04:00:00
WEDNESDAY_WINDOW               freq=daily;byday=WED;byhour=22;byminute=0; bysecond=0                  +000 04:00:00
THURSDAY_WINDOW                freq=daily;byday=THU;byhour=22;byminute=0; bysecond=0                  +000 04:00:00
FRIDAY_WINDOW                  freq=daily;byday=FRI;byhour=22;byminute=0; bysecond=0                  +000 04:00:00
SATURDAY_WINDOW                freq=daily;byday=SAT;byhour=6;byminute=0; bysecond=0                   +000 04:00:00
SUNDAY_WINDOW                  freq=daily;byday=SUN;byhour=6;byminute=0; bysecond=0                   +000 04:00:00

–WINDOW_NAME:任务名
–REPEAT_INTERVAL:任务重复间隔时间
–DURATION:持续时间

一、我们现在要把持续时间改长到 8 个小时

BEGIN
  dbms_scheduler.disable(
    name  = MONDAY_WINDOW
  dbms_scheduler.set_attribute(
    name      = MONDAY_WINDOW ,
    attribute = DURATION ,
    value     = numtodsinterval(8, hour
  dbms_scheduler.enable(
    name = MONDAY_WINDOW
END;
/
这样,我们就把自动周一的自动统计信息收集的任务调整到 8 个小时了。随后按照这个方法分别对周二到周日的时间也做一下调整。

二、同样的方法(分解到各个步骤)

1. 停止任务
BEGIN
DBMS_SCHEDULER.DISABLE(
name= SYS . FRIDAY_WINDOW ,
force= TRUE);
END;

2. 修改任务的持续时间,单位是分钟
BEGIN
DBMS_SCHEDULER.SET_ATTRIBUTE(
name= SYS . FRIDAY_WINDOW ,
attribute= DURATION ,
value= numtodsinterval(480, minute
END;

3. 开始执行时间,BYHOUR=22, 表示 22 点开始执行
BEGIN
DBMS_SCHEDULER.SET_ATTRIBUTE(
name= SYS . FRIDAY_WINDOW ,
attribute= REPEAT_INTERVAL ,
value= FREQ=WEEKLY;BYDAY=MON;BYHOUR=22;BYMINUTE=0;BYSECOND=0
END;

4. 开启任务
BEGIN
DBMS_SCHEDULER.ENABLE(
name= SYS . FRIDAY_WINDOW
END;
按照分解的步骤分别对剩下的几天进行调整。
调整之后
col REPEAT_INTERVAL for a70
select t1.window_name,t1.repeat_interval,t1.duration from dba_scheduler_windows t1,dba_scheduler_wingroup_members t2
where t1.window_name=t2.window_name and t2.window_group_name in (MAINTENANCE_WINDOW_GROUP , BSLN_MAINTAIN_STATS_SCHED  
WINDOW_NAME                    REPEAT_INTERVAL                                                        DURATION
—————————— ———————————————————————- ——————-
MONDAY_WINDOW                  freq=daily;byday=MON;byhour=22;byminute=0; bysecond=0                  +000 08:00:00
TUESDAY_WINDOW                 freq=daily;byday=TUE;byhour=22;byminute=0; bysecond=0                  +000 08:00:00
WEDNESDAY_WINDOW               freq=daily;byday=WED;byhour=22;byminute=0; bysecond=0                  +000 08:00:00
THURSDAY_WINDOW                freq=daily;byday=THU;byhour=22;byminute=0; bysecond=0                  +000 08:00:00
FRIDAY_WINDOW                  freq=daily;byday=FRI;byhour=22;byminute=0; bysecond=0                  +000 08:00:00
SATURDAY_WINDOW                freq=daily;byday=SAT;byhour=6;byminute=0; bysecond=0                   +000 08:00:00
SUNDAY_WINDOW                  freq=daily;byday=SUN;byhour=6;byminute=0; bysecond=0                   +000 08:00:00

关于“Oracle 11g 自动收集统计信息任务时间如何修改”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-24发表,共计3330字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)