Oracle11g 统计信息(一)-----统计信息自动收集任务
来源:互联网 发布:办公室软件office 编辑:程序博客网 时间:2024/04/29 20:23
11g中统计信息自动收集任务的名称是auto optimizer stats collection。11g中自动任务默认的执行时间窗口为:
周一到周五是晚上10点开始到2点结束
周末是早上六点,持续20个小时。
1、查看自动收集任务及状态
select client_name,status from Dba_Autotask_Client where client_name='auto optimizer stats collection';
2、停止自动收集任务
SQL> BEGIN 2 DBMS_AUTO_TASK_ADMIN.DISABLE( 3 client_name => 'auto optimizer stats collection', 4 operation => NULL, window_name => NULL); 5 END; 6 /PL/SQL procedure successfully completed.SQL> 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
SQL> 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、启动自动收集任务
SQL> BEGIN 2 DBMS_AUTO_TASK_ADMIN.ENABLE( 3 client_name => 'auto optimizer stats collection', 4 operation => NULL, window_name => NULL); 5 END; 6 /PL/SQL procedure successfully completed.SQL> select client_name,status from Dba_Autotask_Client where client_name='auto optimizer stats collection';CLIENT_NAME STATUS---------------------------------------------------------------- --------auto optimizer stats collection ENABLED
4、查看自动收集任务历史执行状态
SQL> SELECT client_name, window_name, jobs_created, jobs_started, jobs_completed 2 FROM dba_autotask_client_history 3 WHERE client_name like '%stats%';CLIENT_NAME WINDOW_NAME JOBS_CREATED JOBS_STARTED JOBS_COMPLETED---------------------------------------- ------------------------------ ------------ ------------ --------------auto optimizer stats collection SATURDAY_WINDOW 5 5 5auto optimizer stats collection SUNDAY_WINDOW 6 6 6
通过时间窗口名称可以看出是周几执行的,在时间窗口内创建了几次job,执行了几次job,当然可以加上window_start_time来查看具体执行的日期。
5、查看自动收集任务执行时间窗口
SQL> 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 WINDO OPTIMIZE------------------------------ ----------------------------------------------- ----- --------MONDAY_WINDOW 26-NOV-12 10.00.00.000000 PM PRC TRUE ENABLEDTUESDAY_WINDOW 27-NOV-12 10.00.00.000000 PM PRC FALSE ENABLEDWEDNESDAY_WINDOW 28-NOV-12 10.00.00.000000 PM PRC FALSE ENABLEDTHURSDAY_WINDOW 29-NOV-12 10.00.00.000000 PM PRC FALSE ENABLEDFRIDAY_WINDOW 30-NOV-12 10.00.00.000000 PM PRC FALSE ENABLEDSATURDAY_WINDOW 01-DEC-12 06.00.00.000000 AM PRC FALSE ENABLEDSUNDAY_WINDOW 02-DEC-12 06.00.00.000000 AM PRC FALSE ENABLED
我将系统日期改为11月26日22点以后,MONDAY_WINDOW执行时间窗口自动激活。
6、查询自动收集任务正在执行的JOB
select client_name, JOB_SCHEDULER_STATUS from DBA_AUTOTASK_CLIENT_JOB where client_name='auto optimizer stats collection';
这个查询没有结果也很正常,只有job正在运行时,该查询才有结果。
7、与时间窗口相关的视图
查询自动收集任务所属时间窗口组
SQL> select client_name,window_group from dba_autotask_client where client_name='auto optimizer stats collection';CLIENT_NAME WINDOW_GROUP---------------------------------------- ---------------------------------------------------auto optimizer stats collection ORA$AT_WGRP_OS
查询自动收集任务所属时间窗口组详细信息
SQL> select * from dba_scheduler_window_groups where window_group_name='ORA$AT_WGRP_OS';WINDOW_GROUP_NA ENABL NUMBER_OF_WINDOWS NEXT_START_DATE COMMENTS--------------- ----- ----------------- ----------------------------------- ---------------------------------------------ORA$AT_WGRP_OS TRUE 7 26-NOV-12 10.00.00.000000 PM PRC auto optimizer stats collection
查看自动收集任务所属时间窗口组包含的子时间窗口
SQL> select * from dba_scheduler_wingroup_members where window_group_name='ORA$AT_WGRP_OS';WINDOW_GROUP_NA WINDOW_NAME--------------- ------------------------------ORA$AT_WGRP_OS MONDAY_WINDOWORA$AT_WGRP_OS TUESDAY_WINDOWORA$AT_WGRP_OS WEDNESDAY_WINDOWORA$AT_WGRP_OS THURSDAY_WINDOWORA$AT_WGRP_OS FRIDAY_WINDOWORA$AT_WGRP_OS SATURDAY_WINDOWORA$AT_WGRP_OS SUNDAY_WINDOW
查看子时间窗口信息
SQL> select a.window_name,a.next_start_date,a.active from dba_scheduler_windows a 2 inner join dba_scheduler_wingroup_members b on a.window_name = b.window_name 3 where b.window_group_name='ORA$AT_WGRP_OS';WINDOW_NAME NEXT_START_DATE ACTIV------------------------------ ----------------------------------- -----MONDAY_WINDOW 26-NOV-12 10.00.00.000000 PM PRC TRUETUESDAY_WINDOW 27-NOV-12 10.00.00.000000 PM PRC FALSEWEDNESDAY_WINDOW 28-NOV-12 10.00.00.000000 PM PRC FALSETHURSDAY_WINDOW 29-NOV-12 10.00.00.000000 PM PRC FALSEFRIDAY_WINDOW 30-NOV-12 10.00.00.000000 PM PRC FALSESATURDAY_WINDOW 01-DEC-12 06.00.00.000000 AM PRC FALSESUNDAY_WINDOW 02-DEC-12 06.00.00.000000 AM PRC 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
自定义自动收集任务时间窗口:
- Oracle11g 统计信息(一)-----统计信息自动收集任务
- Oracle11g 统计信息(一)-----统计信息自动收集任务
- 收集统计信息(一)
- oracle11g查看自动收集统计信息是否开启
- Oracle11g 多列收集统计信息--直方图
- Oracle11G多列收集统计信息实验
- 统计信息未自动收集(2)
- 统计信息的自动收集
- Oracle自动收集统计信息
- ORACLE10g自动收集统计信息--自动analyze
- ORACLE10g自动收集CBO统计信息
- Oracle10g优化器统计信息自动收集
- ORACLE10g自动收集CBO统计信息
- 10G 自动收集统计信息
- 10g 统计信息自动收集
- 开启oracle10g统计信息自动收集功能
- [Oracle] 11G自动收集统计信息
- Oracle 11G自动收集统计信息
- OpenMP知识点汇总
- 2013腾讯实习生面试算法题
- 新品预览-竹邑账册
- vi 复制粘贴详解
- Windows主机下Android NDK开发环境的配置
- Oracle11g 统计信息(一)-----统计信息自动收集任务
- ios开发(十六)custom control
- iOS多线程编程之Grand Central Dispatch(GCD)介绍和使用
- hibernate criteria完整用法
- 2014创新工场校招笔试题及参考答案
- 广州传智播客学.Net 就业不再可怕学.Net 就业不再可怕
- android onNewIntent
- 关于inerHTML input value无效的问题
- Sql Server 2008 日期和时间函数、数学函数、字符传函数小结