查询统计信息的收集所对应的task,以及当前状态

  1. col CLIENT_NAME for a50
    col TASK_NAME for a20
    SELECT client_name, task_name, status
  2. FROM dba_autotask_task
  3. WHERE client_name = 'auto optimizer stats collection';
  4. auto optimizer stats collection gather_stats_prog ENABLED;
  1. CLIENT_NAME TASK_NAME STATUS
  2. --------------- ------------------ ----------------- -------
  3. auto optimizer stats collection gather_stats_prog ENABLED
  1. select * from v$version;
  1. BANNER
  2. --------------------------------------------------------------------------------
  3. Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
  4. PL/SQL Release 11.2.0.4.0 - Production
  5. CORE 11.2.0.4.0 Production
  6. TNS for Linux: Version 11.2.0.4.0 - Production
  7. NLSRTL Version 11.2.0.4.0 - Production

下面查询dba_scheduler_programs
--在scheduler_programs中,程序GATHER_STATS_PROG调用
--dbms_stats.gather_database_stats_job_proc来实现统计信息的自动收集

  1. col PROGRAM_ACTION for a50
    SELECT program_action, number_of_arguments, enabled
  2. FROM dba_scheduler_programs
  3. WHERE owner = 'SYS'
  4. AND program_name = 'GATHER_STATS_PROG';
  1. PROGRAM_ACTION NUMBER_OF_ARGUMENTS ENABL
  2. -------------------------------------------------- ------------------- -----
  3. dbms_stats.gather_database_stats_job_proc 0 TRUE

2、查看自动收集统计信息是否开启

  1. SELECT CLIENT_NAME, STATUS
  2. FROM DBA_AUTOTASK_CLIENT
  3. WHERE CLIENT_NAME = 'auto optimizer stats collection';
  1. CLIENT_NAME STATUS
  2. ---------------------------------------------------------------- --------
  3. auto optimizer stats collection ENABLED

统计信息收集的窗口组,如下查询

  1. SELECT window_group
  2. FROM dba_autotask_client
  3. WHERE client_name = 'auto optimizer stats collection';
  1. WINDOW_GROUP
  2. ----------------------------------------------------------------
  3. ORA$AT_WGRP_OS

查询统计信息收集的具体窗口
--统计信息收集的时间窗口
--如下查询周一至周五时间为22点,周六日为6点
--此外持续也不相同,周一至周五为4小时,周六日为20个小时
--enabled为true表明当前的这些作业处于激活状态

  1. col REPEAT_INTERVAL for a60
    col DURATION for a30
    SELECT w.window_name, w.repeat_interval, w.duration, w.enabled
  2. FROM dba_autotask_window_clients c, dba_scheduler_windows w
  3. WHERE c.window_name = w.window_name
  4. AND c.optimizer_stats = 'ENABLED';
  1. WINDOW_NAME REPEAT_INTERVAL DURATION ENABL
  2. ------------------------------ ------------------------------------------------------------ ------------------------------ -----
  3. MONDAY_WINDOW freq=daily;byday=MON;byhour=22;byminute=0; bysecond=0 +000 04:00:00 TRUE
  4. TUESDAY_WINDOW freq=daily;byday=TUE;byhour=22;byminute=0; bysecond=0 +000 04:00:00 TRUE
  5. WEDNESDAY_WINDOW freq=daily;byday=WED;byhour=22;byminute=0; bysecond=0 +000 04:00:00 TRUE
  6. THURSDAY_WINDOW freq=daily;byday=THU;byhour=22;byminute=0; bysecond=0 +000 04:00:00 TRUE
  7. FRIDAY_WINDOW freq=daily;byday=FRI;byhour=22;byminute=0; bysecond=0 +000 04:00:00 TRUE
  8. SATURDAY_WINDOW freq=daily;byday=SAT;byhour=6;byminute=0; bysecond=0 +000 20:00:00 TRUE
  9. SUNDAY_WINDOW freq=daily;byday=SUN;byhour=6;byminute=0; bysecond=0 +000 20:00:00 TRUE

查看自动收集统计信息历史执行情况

  1. SELECT * FROM dba_autotask_client_history WHERE client_name LIKE '%stats%';
  1. CLIENT_NAME WINDOW_NAME WINDOW_START_TIME WINDOW_DURATION JOBS_CREATED JOBS_STARTED JOBS_COMPLETED WINDOW_END_TIME
  2. ---------------------------------------------------------------- ----------------------------------------------------------------- -------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------ ------------ -------------- --------------------------------------------------------------------------------
  3. auto optimizer stats collection WEDNESDAY_WINDOW 24-APR-19 10.00.00.084731 PM +08:00 +000000000 03:59:59.989882 1 1 1 25-APR-19 02.00.00.074613 AM +08:00
  4. auto optimizer stats collection THURSDAY_WINDOW 25-APR-19 10.00.00.075150 PM +08:00 +000000000 03:59:59.973396 1 1 1 26-APR-19 02.00.00.048546 AM +08:00
  5. auto optimizer stats collection FRIDAY_WINDOW 26-APR-19 10.00.00.088460 PM +08:00 +000000000 03:59:59.986848 1 1 1 27-APR-19 02.00.00.075308 AM +08:00
  6. auto optimizer stats collection SATURDAY_WINDOW 27-APR-19 06.00.02.066587 AM +08:00 +000000000 19:59:58.014463 5 5 5 28-APR-19 02.00.00.081050 AM +08:00
  7. auto optimizer stats collection SUNDAY_WINDOW 28-APR-19 06.00.00.180330 AM +08:00 +000000000 19:59:59.883249 5 5 5 29-APR-19 02.00.00.063579 AM +08:00
  8. auto optimizer stats collection MONDAY_WINDOW 29-APR-19 10.00.00.071791 PM +08:00 +000000000 04:00:00.027280 1 1 1 30-APR-19 02.00.00.099071 AM +08:00
  9. auto optimizer stats collection TUESDAY_WINDOW 30-APR-19 10.00.00.093139 PM +08:00 +000000000 03:59:59.989633 1 1 1 01-MAY-19 02.00.00.082772 AM +08:00
  10. auto optimizer stats collection WEDNESDAY_WINDOW 01-MAY-19 10.00.00.104952 PM +08:00 +000000000 03:59:59.971842 1 1 1 02-MAY-19 02.00.00.076794 AM +08:00
  11. auto optimizer stats collection THURSDAY_WINDOW 02-MAY-19 10.00.01.068409 PM +08:00 +000000000 03:59:58.983145 1 1 1 03-MAY-19 02.00.00.051554 AM +08:00
  12. auto optimizer stats collection FRIDAY_WINDOW 03-MAY-19 10.00.00.077000 PM +08:00 +000000000 03:59:59.993378 1 1 1 04-MAY-19 02.00.00.070378 AM +08:00
  13. auto optimizer stats collection SATURDAY_WINDOW 04-MAY-19 06.00.01.062949 AM +08:00 +000000000 19:59:59.018980 5 5 5 05-MAY-19 02.00.00.081929 AM +08:00
  14. auto optimizer stats collection SUNDAY_WINDOW 05-MAY-19 06.00.00.073691 AM +08:00 +000000000 20:00:01.010166 5 5 5 06-MAY-19 02.00.01.083857 AM +08:00
  15. auto optimizer stats collection MONDAY_WINDOW 06-MAY-19 10.00.00.090751 PM +08:00 +000000000 03:59:59.989213 1 1 1 07-MAY-19 02.00.00.079964 AM +08:00
  16. auto optimizer stats collection TUESDAY_WINDOW 07-MAY-19 10.00.00.064104 PM +08:00 +000000000 04:00:00.016201 1 1 1 08-MAY-19 02.00.00.080305 AM +08:00
  17. auto optimizer stats collection WEDNESDAY_WINDOW 08-MAY-19 10.00.00.065315 PM +08:00 +000000000 04:00:00.018545 1 1 1 09-MAY-19 02.00.00.083860 AM +08:00
  18. auto optimizer stats collection THURSDAY_WINDOW 09-MAY-19 10.00.00.073837 PM +08:00 +000000000 03:59:59.980112 1 1 1 10-MAY-19 02.00.00.053949 AM +08:00
  19. auto optimizer stats collection FRIDAY_WINDOW 10-MAY-19 10.00.00.074381 PM +08:00 +000000000 03:59:59.999777 1 1 1 11-MAY-19 02.00.00.074158 AM +08:00
  20. auto optimizer stats collection SATURDAY_WINDOW 11-MAY-19 06.00.01.071340 AM +08:00 +000000000 19:59:59.004645 5 5 5 12-MAY-19 02.00.00.075985 AM +08:00
  21. auto optimizer stats collection SUNDAY_WINDOW 12-MAY-19 06.00.01.066112 AM +08:00 +000000000 19:59:59.015558 5 5 5 13-MAY-19 02.00.00.081670 AM +08:00
  22. auto optimizer stats collection MONDAY_WINDOW 13-MAY-19 10.00.01.074773 PM +08:00 +000000000 03:59:58.975154 1 1 1 14-MAY-19 02.00.00.049927 AM +08:00
  23. CLIENT_NAME WINDOW_NAME WINDOW_START_TIME WINDOW_DURATION JOBS_CREATED JOBS_STARTED JOBS_COMPLETED WINDOW_END_TIME
  24. ---------------------------------------------------------------- ----------------------------------------------------------------- -------------------------------------------------------------------------------- ------------------------------------------------------------------------------- ------------ ------------ -------------- --------------------------------------------------------------------------------
  25. auto optimizer stats collection TUESDAY_WINDOW 14-MAY-19 10.00.00.098044 PM +08:00 +000000000 03:59:59.951603 1 1 1 15-MAY-19 02.00.00.049647 AM +08:00
  26. auto optimizer stats collection WEDNESDAY_WINDOW 15-MAY-19 10.00.00.099538 PM +08:00 +000000000 03:59:59.989331 1 1 1 16-MAY-19 02.00.00.088869 AM +08:00
  27. auto optimizer stats collection THURSDAY_WINDOW 16-MAY-19 10.00.00.107495 PM +08:00 +000000000 03:59:59.938235 1 1 1 17-MAY-19 02.00.00.045730 AM +08:00
  28. auto optimizer stats collection FRIDAY_WINDOW 17-MAY-19 10.00.00.084708 PM +08:00 +000000000 03:59:59.985142 1 1 1 18-MAY-19 02.00.00.069850 AM +08:00
  29. auto optimizer stats collection SATURDAY_WINDOW 18-MAY-19 06.00.01.090394 AM +08:00 +000000000 19:59:58.980792 5 5 5 19-MAY-19 02.00.00.071186 AM +08:00
  30. auto optimizer stats collection SUNDAY_WINDOW 19-MAY-19 06.00.01.075840 AM +08:00 +000000000 19:59:58.978655 5 5 5 20-MAY-19 02.00.00.054495 AM +08:00
  31. auto optimizer stats collection MONDAY_WINDOW 20-MAY-19 10.00.00.109763 PM +08:00 +000000000 03:59:59.956340 1 1 1 21-MAY-19 02.00.00.066103 AM +08:00
  32. auto optimizer stats collection TUESDAY_WINDOW 21-MAY-19 10.00.00.081639 PM +08:00 +000000000 03:59:59.965244 1 1 1 22-MAY-19 02.00.00.046883 AM +08:00
  33. auto optimizer stats collection WEDNESDAY_WINDOW 22-MAY-19 10.00.01.060724 PM +08:00 +000000000 03:59:59.041174 1 1 1 23-MAY-19 02.00.00.101898 AM +08:00
  34. auto optimizer stats collection THURSDAY_WINDOW 23-MAY-19 10.00.00.092859 PM +08:00 +000000000 03:59:59.978915 1 1 1 24-MAY-19 02.00.00.071774 AM +08:00
  35. 30 rows selected

统计信息收集调度时间禁用及修改

1、启用自动收集统计信息

  1. BEGIN
  2. DBMS_AUTO_TASK_ADMIN.ENABLE(client_name => 'auto optimizer stats collection',
  3. operation => NULL,
  4. window_name => NULL);
  5. END;

2、禁用自动收集统计信息

  1. BEGIN
  2. DBMS_AUTO_TASK_ADMIN.DISABLE(client_name => 'auto optimizer stats collection',
  3. operation => NULL,
  4. window_name => NULL);
  5. END;

或者:

  1. --禁用自动收集
  2. exec DBMS_AUTO_TASK_ADMIN.DISABLE(client_name => 'auto optimizer stats collection',operation => NULL,window_name => NULL);
  3. --启用自动收集
  4. exec DBMS_AUTO_TASK_ADMIN.ENABLE(client_name => 'auto optimizer stats collection',operation => NULL,window_name => NULL);
  5. --查看job
  6. SQL> select client_name,status from dba_autotask_client;
  7.  
  8. CLIENT_NAME STATUS
  9. ---------------------------------------------------------------- --------
  10. auto optimizer stats collection ENABLED
  11. auto space advisor ENABLED
  12. sql tuning advisor ENABLED
  13.  
  14. SQL>

3、--执行上面的代码后,验证是否被禁用

  1. CLIENT_NAME STATUS
  2. ---------------------------------------------------------------- --------
  3. auto optimizer stats collection ENABLED

关闭单个调度时间窗口

  1. BEGIN
  2. DBMS_AUTO_TASK_ADMIN.disable(client_name => 'auto optimizer stats collection',
  3. operation => NULL,
  4. window_name => 'MONDAY_WINDOW');
  5. END;
  6. /

--验证关闭情况,如下,optimizer_stats列为DISABLED

  1. SELECT window_name, window_next_time, window_active, optimizer_stats
  2. FROM dba_autotask_window_clients
  3. WHERE window_name = 'MONDAY_WINDOW'
  4. ORDER BY window_next_time;
  1. WINDOW_NAME WINDOW_NEXT_TIME WINDO OPTIMIZE
  2. ------------------------------ --------------------------------------------------------------------------- ----- --------
  3. MONDAY_WINDOW 27-MAY-19 10.00.00.000000 PM PRC FALSE ENABLED

关闭所有时间调度窗口,验证略

  1. BEGIN
  2. DBMS_AUTO_TASK_ADMIN.disable (
  3. client_name => 'auto optimizer stats collection',
  4. operation => NULL,
  5. window_name => NULL);
  6. END;
  7. /
  1. 开启单个调度时间窗口及所有时间调度窗口,只需要使用enable过程
  1. -- 注:单个应指定窗口名字,如window_name => 'MONDAY_WINDOW'
  2. BEGIN
  3. DBMS_AUTO_TASK_ADMIN.enable (
  4. client_name => 'auto optimizer stats collection',
  5. operation => NULL,
  6. window_name => NULL);
  7. END;
  8. /
  1. --修改时间窗口到特定的时间
  2. --如下示例,将周五时间窗口时间到晚间2330
  3. BEGIN
  4. DBMS_SCHEDULER.DISABLE(name => '"SYS"."FRIDAY_WINDOW"', force => TRUE);
  5. END;
  6.  
  7. BEGIN
  8. DBMS_SCHEDULER.SET_ATTRIBUTE(name => '"SYS"."FRIDAY_WINDOW"',
  9. attribute => 'REPEAT_INTERVAL',
  10. VALUE => 'FREQ=WEEKLY;BYDAY=FRI;BYHOUR=23;BYMINUTE=30;BYSECOND=0');
  11. END;
  12.  
  13. BEGIN
  14. DBMS_SCHEDULER.ENABLE(name => '"SYS"."FRIDAY_WINDOW"');
  15. END;
  1. --验证修改
  2. SELECT w.window_name, w.repeat_interval, w.duration, w.enabled
  3. FROM dba_autotask_window_clients c, dba_scheduler_windows w
  4. WHERE c.window_name = w.window_name
  5. AND c.optimizer_stats = 'ENABLED'
  6. AND c.window_name = 'FRIDAY_WINDOW';
  1. WINDOW_NAME REPEAT_INTERVAL DURATION ENABLED
  2. ------------------------------ -------------------------------------------------------------------------------- ------------------------------------------------------------------------------- -------
  3. FRIDAY_WINDOW freq=daily;byday=FRI;byhour=22;byminute=0; bysecond=0 +000 04:00:00 TRUE
  1. --新增维护时间窗口
  2. -- 假定我们要处理的是修改周一的时间窗口
  3. -- 首先关闭周一的时间窗口
  4. BEGIN
  5. DBMS_AUTO_TASK_ADMIN.disable(client_name => 'auto optimizer stats collection',
  6. operation => NULL,
  7. window_name => 'MONDAY_WINDOW');
  8. END;
  9. /
  1. --接下来创建一个窗口并设定时间调度间隔
  2. --如下,每周一5点执行,持续时间为1小时
  3. BEGIN
  4. DBMS_SCHEDULER.create_window(window_name => 'STATS_WINDOW',
  5. resource_plan => 'DEFAULT_MAINTENANCE_PLAN',
  6. repeat_interval => 'freq=daily;byday=MON;byhour=5;byminute=0; bysecond=0',
  7. duration => INTERVAL '' HOUR,
  8. comments => 'Test window for stats task');
  9. EXCEPTION
  10. WHEN OTHERS THEN
  11. IF SQLCODE = -27477 THEN
  12. NULL;
  13. ELSE
  14. RAISE;
  15. END IF;
  16. END;
  17.  
  18. BEGIN
  19. DBMS_SCHEDULER.set_attribute('STATS_WINDOW', 'SYSTEM', TRUE);
  20. DBMS_SCHEDULER.set_attribute('STATS_WINDOW',
  21. 'FOLLOW_DEFAULT_TIMEZONE',
  22. TRUE);
  23. EXCEPTION
  24. WHEN OTHERS THEN
  25. IF SQLCODE = -27477 THEN
  26. NULL;
  27. ELSE
  28. RAISE;
  29. END IF;
  30. END;
  31. /
  1. SELECT window_name, repeat_interval, enabled
  2. FROM dba_scheduler_windows
  3. WHERE window_name = 'STATS_WINDOW';

--接下来将窗口STATS_WINDOW添加到维护窗口组

  1. BEGIN
  2. DBMS_SCHEDULER.add_window_group_member('MAINTENANCE_WINDOW_GROUP',
  3. 'STATS_WINDOW');
  4. END;
  5. /
  1. SELECT WINDOW_NAME, WINDOW_NEXT_TIME, WINDOW_ACTIVE, OPTIMIZER_STATS
  2. FROM DBA_AUTOTASK_WINDOW_CLIENTS
  3. WHERE WINDOW_NAME in ('STATS_WINDOW', 'MONDAY_WINDOW')
  4. ORDER BY WINDOW_NEXT_TIME;

手工执行统计信息的自动收集

  1. --执行下面的这个存储过程
  2. EXEC DBMS_AUTO_TASK_IMMEDIATE.GATHER_OPTIMIZER_STATS;
  1. --如下查询,scott表上的统计信息已更新
  2. select TABLE_NAME,NUM_ROWS,BLOCKS,LAST_ANALYZED from dba_tables where TABLE_NAME='TB_OBJS';

Oracle 11G统计信息自动收集及调整的更多相关文章

  1. oracle的统计信息的查看与收集

    查看某个表的统计信息 SQL> alter session set NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'; Session altered. SQL&g ...

  2. 验证Oracle收集统计信息参数granularity数据分析的力度

    最近在学习Oracle的统计信息这一块,收集统计信息的方法如下: DBMS_STATS.GATHER_TABLE_STATS ( ownname VARCHAR2, ---所有者名字 tabname ...

  3. Oracle自动统计信息的收集原理及实验

    [日期:2014-11-21]来源:Linux社区  作者:stevendbaguo[字体:大 中 小] 从Oracle Database 10g开始,Oracle在建库后就默认创建了一个名为GATH ...

  4. oracle学习----统计信息

    1.收集统计信息的方式 for all columns size skewonly BEGIN  DBMS_STATS.GATHER_TABLE_STATS(ownname          => ...

  5. Oracle Statistic 统计信息 小结

    oraclestatisticstabledatabasesqldictionary   目录(?)[-] 直方图上列的信息说明 直方图类型说明   一.  Statistic 说明 Oracle 官 ...

  6. oracle自动统计信息

    在11g中,默认自动收集统计信息的时间为晚上10点(周一到周五,4个小时),早上6点(周六,周日,20个小时),   select a.window_name, a.repeat_interval,a ...

  7. Oracle 搜集统计信息

    常用的统计信息收集脚本: 非分区表: BEGIN   DBMS_STATS.GATHER_TABLE_STATS(ownname          => 'SCOTT',             ...

  8. ORACLE收集统计信息

    1.     理解什么是统计信息 优化器统计信息就是一个更加详细描述数据库和数据库对象的集合,这些统计信息被用于查询优化器,让其为每条SQL语句选择最佳的执行计划.优化器统计信息包括: ·       ...

  9. ORACLE 收集统计信息

    1.     理解什么是统计信息优化器统计信息就是一个更加详细描述数据库和数据库对象的集合,这些统计信息被用于查询优化器,让其为每条SQL语句选择最佳的执行计划.优化器统计信息包括: ·        ...

随机推荐

  1. ALSA lib编译

    http://blog.sina.com.cn/s/blog_7d7e9d0f0101lqlp.html alsa  lib: #!bin/sh rm -rf ./output/* mkdir -p ...

  2. 6.Dockerfile 指令

    概述 我们已经介绍了 FROM,RUN,还提及了 COPY, ADD,其实 Dockerfile 功能很强大,它提供了十多个指令.下面我们继续讲解其他的指令. COPY 格式: COPY <源路 ...

  3. 机器学习作业(八)异常检测与推荐系统——Matlab实现

    题目下载[传送门] 第1题 简述:对于一组网络数据进行异常检测. 第1步:读取数据文件,使用高斯分布计算 μ 和 σ²: % The following command loads the datas ...

  4. netcore 添加swagger

    1.添加相应的nuget包  2.配置服务和swaggerui startup.cs 中 configureServices 中添加下面代码: //swagger services.AddSwagge ...

  5. Go源码文件与命令

    Go源码文件 文件类型 命令源码文件 : 声明自己属于main包且包含main函数的源码文件,一个包里边不要有多个命令源码文件,虽然用go install ,go run单独执行命令源码文件没有问题, ...

  6. Weather

    Scientists say a lot about the problems of global warming and cooling of the Earth. Indeed, such nat ...

  7. LED Craft Light - How To Solve: Home Decoration Lighting

    Home décor usually comes with a certain period of theme or a specific style of furniture, which will ...

  8. SigXplorer设置延时及Local_Global

    通过SigXplorer设置绝对延时和相对延时及对Local-Global的理解 一.基本理解 (感觉可能有偏差) 在于博士的教程第44和45讲中,分别对绝对延时和相对延时进行了设置,通过SigXpl ...

  9. Python学习第三天(持续学习了很多的str类型相关方法)

    今天的主要内容是各种各样的str对应方法,就直接把自己测试的东西放在了下面:还有很多习题,这个倒是得抓紧啊. #expandtabs:以制表符\t对字符串进行断句,并根据参数数字补齐位数 test = ...

  10. session的到底是做什么的?

    原文地址:https://blog.csdn.net/h19910518/article/details/79348051 前言: 今天就来彻底的学一些session是个啥东西,我罗列了几个需要知道的 ...