zoukankan      html  css  js  c++  java
  • Oracle修改统计信息收集计划时间

    一、查询收集统计信息计划 

    select * 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');

    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');

     

    以下是默认是统计信息收集时间

     

     

    二、修改集统计信息计划的开始时间

    BEGIN
    DBMS_SCHEDULER.SET_ATTRIBUTE(
    name=>'"SYS"."TUESDAY_WINDOW"',
    attribute=>'REPEAT_INTERVAL',
    value=>'freq=daily;byday=TUE;byhour=9;byminute=0; bysecond=0');
    END;

     

    三、修改收集统计信息计划的持续时间

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

     

    numtodsinterval中也可以用 小时hour为单位

    关闭单个调度窗口

    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;

     



    关闭所有时间调度窗口
          BEGIN
               DBMS_AUTO_TASK_ADMIN.disable (
                  client_name   => 'auto optimizer stats collection',
                  operation     => NULL,
                  window_name   => NULL);
            END;
            /

    然而我们在生产中会经常发现,自动收集统计信息会漏掉很多表,我们就需要用到手动收集统计信息、创建计划任务自动执行

    四、查询表的统计信息,手动收集统计信息

    在Oracle中,存在执行计划不准的情况,怀疑表的统计信息是否收集,需要以下操作:
    select table_name,num_rows,blocks,last_analyzed from user_tables where table_name='EMP';

    说明:
    -- table_name:展示表名 --num_rows:最后一次统计时的行数 --blocks:非当前块数,最后一次统计时的块数 --last_analyzed :最后一次统计的时间
    --上述字段为null说明未统计


    手动收集统计信息,并再次查看:
    exec dbms_stats.gather_table_stats(ownname=>'META',tabname=>'EMP',estimate_percent=>10,method_opt=>'for all indexed columns');



  • 相关阅读:
    Java堆外内存管理
    Java内存模型和JVM内存管理
    C++经典面试题(最全,面中率最高)
    115道Java经典面试题(面中率最高、最全)
    Sublime Text 3中文乱码问题的解决(最有效)
    面试笔记3
    IntelliJ IDEA使用教程(很全)
    Intellij IDEA 创建Web项目并在Tomcat中部署运行
    IDEA调试总结(设置断点进行调试)
    Tomcat_启动多个tomcat时,会报StandardServer.await: Invalid command '' received错误
  • 原文地址:https://www.cnblogs.com/zhm1985/p/12097165.html
Copyright © 2011-2022 走看看