ITPub博客

首页 > 数据库 > Oracle > oracle自动收集统计信息

oracle自动收集统计信息

原创 Oracle 作者:wanglinghua0907 时间:2024-01-18 13:24:02 0 删除 编辑

1.查看是否自动收集统计信息了

col REPEAT_INTERVAL for a60
col DURATION for a30
SELECT w.window_name, w.repeat_interval, w.duration, w.enabled
  FROM dba_autotask_window_clients c, dba_scheduler_windows w
 WHERE c.window_name = w.window_name
   AND c.optimizer_stats = 'ENABLED';



如图是周一到周五  22点开始  持续4小时,周末 6点开始 持续20小时

WINDOW_NANE REPEAT—INTERVAL fr eq—dai 1 y; byday=MON; byhour —22 ; bymi nut e—O; MONDAY_WINDOW TUESDAY_WINDOW WEDNESDAY_WINDOW fr eq—dai ly; bydapTHL1; byhour —22 ; bymi nute—O; THURSDAY_WINDOW fr eq=dai ly; byday=FRI ; byhour=22; bymi nute=O; FRIDAY_WINDOW SATURDAY_WINDOW fr eq—dai ly; byday—SIJN; byhour —6; bymi nut e—O; SUNDAY_WINDOW DURATION fr eq—daily, fr eq—daily, fr eq—daily, • byday-TlJE, • byday=WED, • byday-SAT , • byhour=22; bymi nute—O; • byhour —22; bytni nute—O; • byhour—6; bymi nute-0; bysecond=O bysecond=O bysecond=O bysecond-O bysecond=O bys econd—0 bys econd—O +000 +000 +000 +000 +000 04 : 00 04 : 00 : oo 04 04 : 00 04 : 00:00 20: 00 : oo ENABL TRUE TRUE TRUE TRUE TRUE TRUE TRUE

“ 备 注 : . 每 天 收 集 ; #freq=daily . #;byday=stn: 一 周 之 内 的 星 期 , 例 如 这 里 是 星 期 日 ; : 每 天 的 时 间 点 时 , 这 里 是 22 时 , #byhour=22 #byminute=o : 每 天 的 的 时 间 点 分 , 这 里 是 0 分 , 则 第 1 分 ; 每 天 的 时 间 点 秒 , 这 里 是 0 秒 , 则 第 1 秒 ; #bysecond=O : . 00 : 表 示 收 集 信 息 的 时 间 区 间 长 , 这 里 表 示 20 小 时 。 # + 000 20 : 00 ,


都需要开启才能使用自动收集

SELECT WINDOW_NAME,AUTOTASK_STATUS,OPTIMIZER_STATS,SEGMENT_ADVISOR,SQL_TUNE_ADVISOR
FROM DBA_AUTOTASK_WINDOW_CLIENTS;


WINDOW_NAME AUTOTASK OPTIMIZE MONDAY _WINDOW TUESDAY_WINDOW WEDNESDAY_WINDOW THURSDAY_WINDOW FRIDAY_WINDOW SATURDAY_WINDOW SUNDAY _WINDOW ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED SEGMENT _ ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED SQL_TUNE ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED ENABLED


------------------

关(关的AUTOTASK_STATUS)

BEGIN
  DBMS_AUTO_TASK_ADMIN.enable();
END;
/


开

BEGIN
  DBMS_AUTO_TASK_ADMIN.enable();
END;
/


------------------

替换的方法


先停止(下掉整行)

BEGIN
DBMS_SCHEDULER.DISABLE(
name => '"SYS"."MONDAY_WINDOW"');
end;
/


改开始时间

BEGIN
DBMS_SCHEDULER.SET_ATTRIBUTE(
name => '"SYS"."MONDAY_WINDOW"',
attribute => 'REPEAT_INTERVAL',
value =>
'freq=daily;byday=MON;byhour=2;byminute=0;bysecond=0');
end;
/

改持续时间

BEGIN
DBMS_SCHEDULER.SET_ATTRIBUTE(
name=>'"SYS"."MONDAY_WINDOW"',
attribute=>'DURATION',
value=>numtodsinterval(180, 'minute'));
END;
/

启用

BEGIN
DBMS_SCHEDULER.ENABLE(
name => '"SYS"."MONDAY_WINDOW"');
end;
/

------------

关闭某天的自动收集(关的OPTIMIZER_STATS)

        BEGIN
           DBMS_AUTO_TASK_ADMIN.disable (
              client_name   => 'auto optimizer stats collection',
              operation     => NULL,
              window_name   => 'MONDAY_WINDOW');
        END;
/

开启某天的自动收集

        BEGIN
           DBMS_AUTO_TASK_ADMIN.enable (
              client_name   => 'auto optimizer stats collection',
              operation     => NULL,
              window_name   => 'MONDAY_WINDOW');
        END;
/

自己定制定时统计信息job

stale table select when when segment _ size 1 and segment size > 5 s e gment _si z / 1024' e S then percent, 6 as degree f rom (select from where and group beg n segment s 1024 1024 sum (byte DBA SEGMENTS L-.sccrv segment _ name in (select table DEA TAB STATISTICS where I last analyzed is null or and by segment _ name) dbms stats . r lush _ database_mnitorim; info; for stale stale _ table loop . gather table_stats opt end loop; stale Stats • YES stale ' for all Size repeat • , stale. degree,


1.1查看是否自动收集统计信息

select client_name,status from dba_autotask_client;
select client_name,status from Dba_Autotask_Client where client_name='auto optimizer stats collection';

SQL> select client _ name, status from CLIENT_NAME auto ootimizer stats auto space advisor sql tuning advisor co Ilection STATUS DISABLED ENABLED ENABLED


1.2开启自动收集统计信息

exec DBMS_AUTO_TASK_ADMIN.ENABLE(client_name => 'auto optimizer stats collection',operation
=> NULL,window_name => NULL);

1.3关闭自动收集统计信息

exec DBMS_AUTO_TASK_ADMIN.DISABLE(client_name => 'auto optimizer stats collection',operation
=> NULL,window_name => NULL);



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

请登录后发表评论 登录
全部评论
Oracle ACE、sql server、oceanbase数据库专家,拥有7年以上的大型数据库运维经验,主方向oracle,擅长故障排除、诊断,大体量(TB)迁移,异常故障修复等。拥有丰富主导大型项目经验。服务行业包括:运营商、银行、金融业、政府单位、医疗、制造业、高校等等。

注册时间:2020-07-31

  • 博文量
    116
  • 访问量
    88779