从Oracle 11G开始,数据库统计信息的自动收集被整合到自动维护任务中,满足大多数情形下的运行需求。但是今天看到一篇博文:
http://www.cndba.cn/549974293/article/2614#comments。博文的主要内容是无法自动收集统计信息,并且给出了一些解决思路。
SQL> select client_name,task_name,operation_name,status from dba_autotask_task; -- 查询dba_autotask_task视图根本没有结果返回。
no rows selected
SQL> select job_name,actual_start_date,status from (select * from dba_scheduler_job_run_details where job_name like 'ORA$AT_OS_OPT%' order by log_date desc ) where rownum <4; --最近一次执行成功的自动收集统计信息的时间如下
JOB_NAME ACTUAL_START_DATE STATUS
---------------------------- ---------------------------------------- -------------
ORA$AT_OS_OPT_SY_2606 26-SEP-12 10.00.07.902100 PM PRC SUCCEEDED
ORA$AT_OS_OPT_SY_2586 25-SEP-12 10.00.07.829792 PM PRC SUCCEEDED
ORA$AT_OS_OPT_SY_2566 24-SEP-12 10.00.07.154019 PM PRC SUCCEEDED
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
------------------------------ ------------------------------------- ----- --------
TUESDAY_WINDOW 30-JAN-18 10.00.00.000000 PM PRC FALSE ENABLED
WEDNESDAY_WINDOW 31-JAN-18 10.00.00.000000 PM PRC FALSE ENABLED
THURSDAY_WINDOW 01-FEB-18 10.00.00.000000 PM PRC FALSE ENABLED
FRIDAY_WINDOW 02-FEB-18 10.00.00.000000 PM PRC FALSE ENABLED
SATURDAY_WINDOW 03-FEB-18 06.00.00.000000 AM PRC FALSE ENABLED
SUNDAY_WINDOW 04-FEB-18 06.00.00.000000 AM PRC FALSE ENABLED
MONDAY_WINDOW 05-FEB-18 03.00.00.000000 PM PRC FALSE ENABLED
SQL> select client_name,status from dba_autotask_client; --奇怪的是查询这个视图,确实是自动打开收集统计信息的设置。
CLIENT_NAME