参考文献:

Oracle11g 统计信息(一)-----统计信息自动收集任务

背景:

在使用cacti监控oracle数据库IO的时候发现每天晚上10点钟的时候oracle数据库读写明显增加,如下图所示:

对这个问题,后来查了一下是因为oracle在运行一个信息自动收集任务。oracle 11g中统计信息自动收集任务的名称是auto optimizer stats collection。11g中自动任务默认的执行时间窗口(oracle时间窗口介绍)为:

  • 周一到周五是晚上10点开始到2点结束
  • 周末是早上六点,持续20个小时。

1、查看自动收集任务及状态

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

2、停止自动收集任务

--关闭信息自动收集任务
BEGIN
DBMS_AUTO_TASK_ADMIN.DISABLE(
client_name => 'auto optimizer stats collection',
operation => NULL, window_name => NULL);
END;
/ PL/SQL procedure successfully completed. --再次查询
select client_name,status from Dba_Autotask_Client where client_name='auto optimizer stats collection';
CLIENT_NAME STATUS
---------------------------------------------------------------- --------
auto optimizer stats collection DISABLED

但是此时再查询DBA_ATUOTASK_TASK视图时,显示该任务状态还是ENABLED

select client_name,status from dba_autotask_task where client_name='auto optimizer stats collection';
CLIENT_NAME STATUS
---------------------------------------------------------------- --------
auto optimizer stats collection ENABLED

Oracle给出的解释是在现在的版本中(11.1 to 11.2)一个client对应一个task,但是在将来的版本中会出现多个client会对应一个task,所以一个client被disabled了,不会改变task的状态。[ID 858852.1]

3、启动自动收集任务

 BEGIN
DBMS_AUTO_TASK_ADMIN.ENABLE(
client_name => 'auto optimizer stats collection',
operation => NULL, window_name => NULL);
END;
/
PL/SQL procedure successfully completed.
--再次查询
select client_name,status from Dba_Autotask_Client where client_name='auto optimizer stats collection';
CLIENT_NAME STATUS
---------------------------------------------------------------- --------
auto optimizer stats collection ENABLED

4、查看自动收集任务历史执行状态

SELECT client_name, window_name, jobs_created, jobs_started, jobs_completed FROM dba_autotask_client_history WHERE client_name like '%stats%';
       CLIENT_NAME    WINDOW_NAME    JOBS_CREATED    JOBS_STARTED    JOBS_COMPLETED
1 auto optimizer stats collection FRIDAY_WINDOW 1 1 1
2 auto optimizer stats collection FRIDAY_WINDOW 1 1 1
3 auto optimizer stats collection FRIDAY_WINDOW 1 1 1
4 auto optimizer stats collection FRIDAY_WINDOW 1 1 1
5 auto optimizer stats collection MONDAY_WINDOW 1 1 1
6 auto optimizer stats collection MONDAY_WINDOW 1 1 1
7 auto optimizer stats collection MONDAY_WINDOW 1 1 1
8 auto optimizer stats collection MONDAY_WINDOW 1 1 1
9 auto optimizer stats collection SATURDAY_WINDOW 5 5 5
10 auto optimizer stats collection SATURDAY_WINDOW 5 5 5
11 auto optimizer stats collection SATURDAY_WINDOW 5 5 5
12 auto optimizer stats collection SATURDAY_WINDOW 5 5 5
13 auto optimizer stats collection SUNDAY_WINDOW 5 5 5
14 auto optimizer stats collection SUNDAY_WINDOW 5 5 5
15 auto optimizer stats collection SUNDAY_WINDOW 5 5 5
16 auto optimizer stats collection SUNDAY_WINDOW 5 5 5
17 auto optimizer stats collection THURSDAY_WINDOW 1 1 1
18 auto optimizer stats collection THURSDAY_WINDOW 1 1 1
19 auto optimizer stats collection THURSDAY_WINDOW 1 1 1
20 auto optimizer stats collection THURSDAY_WINDOW 1 1 1
21 auto optimizer stats collection TUESDAY_WINDOW 1 1 1
22 auto optimizer stats collection TUESDAY_WINDOW 1 1 1
23 auto optimizer stats collection TUESDAY_WINDOW 1 1 1
24 auto optimizer stats collection TUESDAY_WINDOW 1 1 1
25 auto optimizer stats collection TUESDAY_WINDOW 1 1 1
26 auto optimizer stats collection WEDNESDAY_WINDOW 1 1 1
27 auto optimizer stats collection WEDNESDAY_WINDOW 1 1 1
28 auto optimizer stats collection WEDNESDAY_WINDOW 1 1 1
29 auto optimizer stats collection WEDNESDAY_WINDOW 1 1 1
30 auto optimizer stats collection WEDNESDAY_WINDOW 1 1 1

通过时间窗口名称可以看出是周几执行的,在时间窗口内创建了几次job,执行了几次job,当然可以加上window_start_time来查看具体执行的日期。

5、查看自动收集任务执行时间窗口

select WINDOW_NAME, WINDOW_NEXT_TIME , WINDOW_ACTIVE,OPTIMIZER_STATS from DBA_AUTOTASK_WINDOW_CLIENTS order by WINDOW_NEXT_TIME ;
       WINDOW_NAME    WINDOW_NEXT_TIME    WINDOW_ACTIVE    OPTIMIZER_STATS
1 THURSDAY_WINDOW 07-AUG-14 10.00.00.000000 PM +08:00 FALSE ENABLED
2 FRIDAY_WINDOW 08-AUG-14 10.00.00.000000 PM +08:00 FALSE ENABLED
3 SATURDAY_WINDOW 09-AUG-14 06.00.00.000000 AM +08:00 FALSE ENABLED
4 SUNDAY_WINDOW 10-AUG-14 06.00.00.000000 AM +08:00 FALSE ENABLED
5 MONDAY_WINDOW 11-AUG-14 10.00.00.000000 PM +08:00 FALSE ENABLED
6 TUESDAY_WINDOW 12-AUG-14 10.00.00.000000 PM +08:00 FALSE ENABLED
7 WEDNESDAY_WINDOW 13-AUG-14 10.00.00.000000 PM +08:00 FALSE ENABLED

6、查询自动收集任务正在执行的JOB

select client_name, JOB_SCHEDULER_STATUS from DBA_AUTOTASK_CLIENT_JOB where client_name='auto optimizer stats collection';

这个查询没有结果也很正常,只有job正在运行时,该查询才有结果。

7、与时间窗口相关的视图
查询自动收集任务所属时间窗口组

select client_name,window_group from dba_autotask_client where client_name='auto optimizer stats collection';
       CLIENT_NAME    WINDOW_GROUP
1 auto optimizer stats collection ORA$AT_WGRP_OS

查询自动收集任务所属时间窗口组详细信息

select * from dba_scheduler_window_groups where window_group_name='ORA$AT_WGRP_OS';
       WINDOW_GROUP_NAME    ENABLED    NUMBER_OF_WINDOWS    NEXT_START_DATE    COMMENTS
1 ORA$AT_WGRP_OS TRUE 7 07-AUG-14 10.00.00.000000 PM +08:00 auto optimizer stats collection

查看自动收集任务所属时间窗口组包含的子时间窗口

select * from dba_scheduler_wingroup_members where window_group_name='ORA$AT_WGRP_OS';
       WINDOW_GROUP_NAME    WINDOW_NAME
1 ORA$AT_WGRP_OS MONDAY_WINDOW
2 ORA$AT_WGRP_OS TUESDAY_WINDOW
3 ORA$AT_WGRP_OS WEDNESDAY_WINDOW
4 ORA$AT_WGRP_OS THURSDAY_WINDOW
5 ORA$AT_WGRP_OS FRIDAY_WINDOW
6 ORA$AT_WGRP_OS SATURDAY_WINDOW
7 ORA$AT_WGRP_OS SUNDAY_WINDOW

查看子时间窗口信息

select a.window_name,a.next_start_date,a.active from dba_scheduler_windows a
inner join dba_scheduler_wingroup_members b on a.window_name = b.window_name
where b.window_group_name='ORA$AT_WGRP_OS';
       WINDOW_NAME    NEXT_START_DATE    ACTIVE
1 MONDAY_WINDOW 11-AUG-14 10.00.00.000000 PM +08:00 FALSE
2 TUESDAY_WINDOW 12-AUG-14 10.00.00.000000 PM +08:00 FALSE
3 WEDNESDAY_WINDOW 13-AUG-14 10.00.00.000000 PM +08:00 FALSE
4 THURSDAY_WINDOW 07-AUG-14 10.00.00.000000 PM +08:00 FALSE
5 FRIDAY_WINDOW 08-AUG-14 10.00.00.000000 PM +08:00 FALSE
6 SATURDAY_WINDOW 09-AUG-14 06.00.00.000000 AM +08:00 FALSE
7 SUNDAY_WINDOW 10-AUG-14 06.00.00.000000 AM +08:00 FALSE

通过这个查询可以看出DBA_AUTOTASK_WINDOW_CLIENTS视图的信息其实和上面的结果一样。

总结一下统计信息自动收集任务运行的步骤:
首先是dba_autotask_task-->dba_autotask_client建立自动执行任务
再根据时间窗口及资源组建立自动执行作业
dba_autotask_client-->dba_scheduler_window_groups-->dba_scheduler_windows-->dba_scheduler_jobs
dba_autotask_client-->dba_scheduler_job_classes
相关视图:
dba_autotask_task
dba_autotask_client
dba_autotask_client_job
dba_autotask_window_clients
dba_autotask_client_history

dba_scheduler_jobs
dba_scheduler_job_classes
dba_scheduler_window_groups
dba_scheduler_windows
dba_scheduler_wingroup_members

自定义自动收集任务时间窗口:
How to use an own Maintenance Window for the Statistics Collection in 11g [ID 1300313.1]

MOS相关文档: FAQ: Automatic Statistics Collection [ID 1233203.1]

Oracle11g 统计信息——统计信息自动收集任务的更多相关文章

  1. 11g统计信息自动收集任务

    1.查看统计信息自动收集任务的开启情况. select client_name,status from dba_autotask_client; 2.查看自动收集任务各个窗口的开启情况. col op ...

  2. OCM_第十三天课程:Section6 —》数据库性能调优 _结果缓存 /多列数据信息采集统计/采集数据信息保持游标有效

    注:本文为原著(其内容来自 腾科教育培训课堂).阅读本文注意事项如下: 1:所有文章的转载请标注本文出处. 2:本文非本人不得用于商业用途.违者将承当相应法律责任. 3:该系列文章目录列表: 一:&l ...

  3. Hexo博客添加SEO-评论系统-阅读统计-站长统计

    原文地址:→传送门 写在前面 在五月出捣腾了一把个人博客,但是刚开始只做了一些基础设置,套路也没摸清,基础安装篇请看hexo从零开始到搭建完整,里面讲到了基础工具的安装及blog项目的文件夹含义,以及 ...

  4. redis的服务器信息状态信息查看

    Redis的服务器信息状态信息查看 Redis的提供了一个信息命令查看Redis的服务器的信息,类似的Linux提供一个顶级命令查看系统的信息 redis-cli info # Server #服务器 ...

  5. 重新想象 Windows 8 Store Apps (30) - 信息: 获取包信息, 系统信息, 硬件信息, PnP信息, 常用设备信息

    原文:重新想象 Windows 8 Store Apps (30) - 信息: 获取包信息, 系统信息, 硬件信息, PnP信息, 常用设备信息 [源码下载] 重新想象 Windows 8 Store ...

  6. 智能ERP收银统计-优惠统计计算规则

    1.报表统计->收银统计->优惠统计规则          第三方平台优惠:(堂食订单:支付宝口碑券优惠)+(外卖订单:商家承担优惠)          自平台优惠:(堂食订单:商家后台优 ...

  7. AFNetworking 打印错误信息(二进制信息)

    AFNetworking 打印错误信息(二进制信息) NSError *underError = error.userInfo[@"NSUnderlyingError"]; NSD ...

  8. 解决oracle11g安装导致数据库无法自动搜集统计信息-转

    近期发现个别11G数据库无法自动收集统计信息,部分视图查询结果如下: SQL> select client_name,status from dba_autotask_client where ...

  9. python 统计MySQL表信息

    一.场景描述 线上有一台MySQL服务器,里面有几十个数据库,每个库有N多表. 现在需要将每个表的信息,统计到excel中,格式如下: 库名 表名 表说明 建表语句 db1 users 用户表 CRE ...

随机推荐

  1. mysql管理知识点

    mysql是完全开原的关系型数据库,在web后端用的比较多,经典的架构有LAMP,LNMP,其中的M就指mysql. 一:安装 新版的linux里默认的已经不是mysql,而是他的一个分支mariad ...

  2. Windows Azure Service Bus (4) Service Bus Queue和Storage Queue的区别

    <Windows Azure Platform 系列文章目录> 熟悉笔者文章的读者都了解,Azure提供两种不同方式的Queue消息队列: 1.Azure Storage Queue 具体 ...

  3. Microsoft Azure News(5) Azure新DV2系列虚拟机上线

    <Windows Azure Platform 系列文章目录> 在之前的文章中,笔者了Azure VM虚拟机,分为A系列和D系列2种 Microsoft Azure News(4) Azu ...

  4. springmvc学习笔记--json--返回json的日期格式问题

    (一)输出json数据 springmvc中使用jackson-mapper-asl即可进行json输出,在配置上有几点: 1.使用mvc:annotation-driven 2.在依赖管理中添加ja ...

  5. C#根据身份证号码,计算生日、年龄、性别

    朋友谈及身份证相关的信息,才了解到原来省份证号码中包含了年龄和性别. 这样在数据库中,就不必单独留字段存放它们了(不过,要根据具体情况来,要是读取频率较高,还是单独列出为好),这样顺带解决了年龄变更的 ...

  6. 小meta的大作用

    meta是用来在HTML文档中模拟HTTP协议的响应头报文.meta 标签用于网页的<head>与</head>中,meta 标签的用处很多.meta 的属性有两种:name和 ...

  7. fastcgi安装

    fastcgi安装 这里及以下的web服务器都是以nginx为例子和说明,php以5.3为例子. php-fpm fastcgi在服务器上会启动多个进程进行解析,这个时候就需要一个fastcgi的管理 ...

  8. 基于HTML5快速搭建3D机房设备面板

    以真实设备为模型,搭建出设备面板,并实时获取设备运行参数,显示在设备面板上,这相比于纯数值的设备监控系统显得更加生动直观.今天我们就在HT for Web的3D技术上完成设备面板的搭建. 我们今天模拟 ...

  9. SQL Server时间粒度系列----第1节时间粒度概述

    本文目录列表: 1.什么是时间粒度?2.SQL Server提供的时间粒度3.SQL Server时间粒度代码演示   4.SQL Server基准日期 5.总结语6.参考清单列表   什么是时间粒度 ...

  10. C#对图片文件的压缩、裁剪操作初探

    在做项目时,对图片的处理,以前都采用在上传时,限制其大小的方式,这样带来诸多不便.毕竟网站运维人员不一定会对图片做处理,经常超出大小限制,即使会使用图片处理软件的,也由于个人水平方面原因,处理效果差强 ...