统计信息自动收集任务失效原因排查
环境:Oracle 11.2.0.3 RAC
问题:统计信息自动收集任务失效原因排查
- 1.查看自动任务的状态
- 2.进一步查看其它信息
- 3.解决问题
1.查看自动任务的状态
查看自动任务的状态,确认是enabled状态:
SQL> select client_name,status from dba_autotask_client;CLIENT_NAME STATUS
---------------------------------------------------------------- --------
auto optimizer stats collection ENABLED
auto space advisor ENABLED
sql tuning advisor ENABLEDElapsed: 00:01:03.88
一般来说,这样的结果,就意味着统计信息自动收集是打开的,如今却是没有自动收集。说明确实是有故障,需要进一步深入排查。
若对这些自动任务的状态不理解可以参考之前文章:
- Oracle的窗口和自动任务
2.进一步查看其它信息
根据 Why Auto Optimizer Statistics Collection May Appear to be "Stuck" and Not Running? (文档 ID 1320246.1)
排查以下项:
The 'auto optimizer stats collection' task is enabled in auto task
STATISTICS_LEVEL has already been set to TYPICAL or FULL
dba_autotask_client_history is empty
Statistics on tables are stale.
Some scheduler window is active and LAST_START_DATE is several days ago.
具体操作记录如下:
--STATISTICS_LEVEL:
SQL> show parameter STATISTICS_LEVEL NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
statistics_level string TYPICAL--dba_autotask_client_history is empty:
SQL> select * from dba_autotask_client_history;no rows selectedElapsed: 00:01:04.79--Some scheduler window is active and LAST_START_DATE 是20-SEP-12 10.00.00.010777 PM
SELECT window_name, last_start_date, enabled, active FROM dba_scheduler_windows;
SQL> SELECT window_name ,2 last_start_date,3 enabled ,4 active5 FROM dba_scheduler_windows;WINDOW_NAME LAST_START_DATE ENABL ACTIV
------------------------------ --------------------------------------------------------------------------- ----- -----
MONDAY_WINDOW 22-JAN-18 10.00.00.014299 PM PRC TRUE FALSE
TUESDAY_WINDOW 23-JAN-18 10.00.01.076798 PM PRC TRUE FALSE
WEDNESDAY_WINDOW 24-JAN-18 10.00.00.055066 PM PRC TRUE FALSE
THURSDAY_WINDOW 20-SEP-12 10.00.00.010777 PM PRC TRUE TRUE
FRIDAY_WINDOW 26-JAN-18 10.00.00.725176 PM PRC TRUE FALSE
SATURDAY_WINDOW 27-JAN-18 06.00.00.010751 AM PRC TRUE FALSE
SUNDAY_WINDOW 28-JAN-18 06.00.00.593207 AM PRC TRUE FALSE
WEEKNIGHT_WINDOW FALSE FALSE
WEEKEND_WINDOW FALSE FALSE9 rows selected.Elapsed: 00:00:00.01
可以看到,如今的环境确实完全匹配文档列出的这些特征项。
另外,看下统计信息自动收集任务的WINDOW_GROUP以及对应的MEMBER_NAME:
SQL> select client_name,window_group2 from DBA_AUTOTASK_CLIENT3 where client_name = 'auto optimizer stats collection';CLIENT_NAME WINDOW_GROUP
---------------------------------------------------------------- ----------------------------------------------------------------
auto optimizer stats collection ORA$AT_WGRP_OSElapsed: 00:01:05.39
SQL> SELECT * FROM dba_scheduler_group_members2 where group_name='ORA$AT_WGRP_OS';OWNER GROUP_NAME MEMBER_NAME
------------------------------ ------------------------------ -----------------------------------------------------------------------------------------------------------------------------------
SYS ORA$AT_WGRP_OS "SYS"."MONDAY_WINDOW"
SYS ORA$AT_WGRP_OS "SYS"."TUESDAY_WINDOW"
SYS ORA$AT_WGRP_OS "SYS"."WEDNESDAY_WINDOW"
SYS ORA$AT_WGRP_OS "SYS"."THURSDAY_WINDOW"
SYS ORA$AT_WGRP_OS "SYS"."FRIDAY_WINDOW"
SYS ORA$AT_WGRP_OS "SYS"."SATURDAY_WINDOW"
SYS ORA$AT_WGRP_OS "SYS"."SUNDAY_WINDOW"7 rows selected.Elapsed: 00:00:00.04
可以看到,正常应该是一周7天都有的,但是由于THURSDAY_WINDOW 的窗口ACTIVE是TRUE,导致2012年9月27号(周四)统计信息收集失败。根据MOS描述,会影响其后的窗口都打开失败,进而导致之后所有自动任务的执行都失败。
我实际在我的测试环境验证也是如此,现象如下:
SQL> SELECT window_name, last_start_date, enabled, active FROM dba_scheduler_windows;WINDOW_NAME LAST_START_DATE ENABLED ACTIVE
------------------------------------------------------------ --------------------------------------------------------------------------- ---------- ----------
MONDAY_WINDOW 22-JAN-18 10.00.00.011111 PM EST5EDT TRUE FALSE
TUESDAY_WINDOW 23-JAN-18 10.22.54.068776 PM EST5EDT TRUE FALSE
WEDNESDAY_WINDOW 24-JAN-18 10.00.00.005654 PM EST5EDT TRUE FALSE
THURSDAY_WINDOW 25-JAN-18 10.00.00.009885 PM EST5EDT TRUE FALSE
FRIDAY_WINDOW 26-JAN-18 10.00.00.010077 PM EST5EDT TRUE FALSE
SATURDAY_WINDOW 27-JAN-18 05.00.00.004156 PM EST5EDT TRUE FALSE
SUNDAY_WINDOW 28-JAN-18 01.00.00.010044 PM EST5EDT TRUE TRUE
WEEKNIGHT_WINDOW FALSE FALSE
WEEKEND_WINDOW FALSE FALSE9 rows selected.SQL> EXECUTE DBMS_SCHEDULER.OPEN_WINDOW ('MONDAY_WINDOW','');
BEGIN DBMS_SCHEDULER.OPEN_WINDOW ('MONDAY_WINDOW',''); END;*
ERROR at line 1:
ORA-27480: window "SUNDAY_WINDOW" is currently open
ORA-06512: at "SYS.DBMS_ISCHED", line 493
ORA-06512: at "SYS.DBMS_SCHEDULER", line 1220
ORA-06512: at line 1SQL>
可以看到我测试环境,因为周日的窗口已经是ACTIVE,再尝试打开周一的窗口就会报错,看起来同时就只能有一个窗口ACTIVE,这与MOS的描述也完全一致。
3.解决问题
根据MOS解决建议手工关闭活动的窗口,我这里就是关闭THURSDAY_WINDOW窗口:
SQL> EXECUTE DBMS_SCHEDULER.CLOSE_WINDOW ('THURSDAY_WINDOW');PL/SQL procedure successfully completed.Elapsed: 00:00:00.14
再次查询状态,确认窗口状态已关闭:
SQL> SELECT window_name ,2 last_start_date,3 enabled ,4 active5 FROM dba_scheduler_windows;WINDOW_NAME LAST_START_DATE ENABL ACTIV
------------------------------ --------------------------------------------------------------------------- ----- -----
MONDAY_WINDOW 22-JAN-18 10.00.00.014299 PM PRC TRUE FALSE
TUESDAY_WINDOW 23-JAN-18 10.00.01.076798 PM PRC TRUE FALSE
WEDNESDAY_WINDOW 24-JAN-18 10.00.00.055066 PM PRC TRUE FALSE
THURSDAY_WINDOW 20-SEP-12 10.00.00.010777 PM PRC TRUE FALSE
FRIDAY_WINDOW 26-JAN-18 10.00.00.725176 PM PRC TRUE FALSE
SATURDAY_WINDOW 27-JAN-18 06.00.00.010751 AM PRC TRUE FALSE
SUNDAY_WINDOW 28-JAN-18 06.00.00.593207 AM PRC TRUE FALSE
WEEKNIGHT_WINDOW FALSE FALSE
WEEKEND_WINDOW FALSE FALSE9 rows selected.
这样就找到了问题,另外因为离统计信息信息自动收集关闭已有多年,目前生产环境运行平稳,所以最终决定保守处理,即:先将生产环境的自动任务都关闭,等在备库测试验证后再考虑生产环境开启自动任务。
Reference
- Why Auto Optimizer Statistics Collection May Appear to be "Stuck" and Not Running? (文档 ID 1320246.1)
统计信息自动收集任务失效原因排查相关推荐
- Oracle11g 统计信息——统计信息自动收集任务
背景: 在使用cacti监控oracle数据库IO的时候发现每天晚上10点钟的时候oracle数据库读写明显增加,如下图所示: 对这个问题,后来查了一下是因为oracle在运行一个信息自动收集任务.o ...
- 统计信息自动更新导致查询超时
数据库有个大的接口日志表InterfaceRecord,表中有XML字段保存了接口报文,每个月新增6000多万的数据(大约300多GB),数据库有个JOB每周日晚上定时把表中1个月前的数据归档到历史库 ...
- mysql统计信息表行数不准确_mysql SQL调优-统计信息不准的原因
问题现象: 开发报告查询语句突然变慢. 处理过程: 1.在从库查看执行计划: 并且执行查询,结果是返回159条数据,只需要0.58秒,并不慢 (2)了解到原来应用连接的是主库,随即上主库查看执行计划, ...
- 统计信息:SQL执行优化之密钥
SQL 执行的指导思想是什么? SQL 执行计划的正确依赖选择依赖于什么?统计信息为什么在 SQL 执行中起到关键性的作用?如何才能自动化收集统计信息?让 一起了解 SQL 执行优化的核心底座. 统计 ...
- SQL Server 统计信息更新时采样百分比对数据预估准确性的影响
为什么要写统计信息 最近看到园子里有人写统计信息,楼主也来凑热闹. 话说经常做数据库的,尤其是做开发的或者优化的,统计信息造成的性能问题应该说是司空见惯. 当然解决办法也并非一成不变,"一招 ...
- Always On可用性组中SQL Server统计信息
SQL Server统计信息简介 (Introduction to SQL Server Statistics) SQL Server Statistics are an essential part ...
- oracle优化器统计信息相关
优化器使用统计信息来生成每个sql语句最优的执行计划.准确的统计信息对于数据库的效率至关重要. dba和程序开发人员都应该了解一些统计信息相关知识,这可以使你更好的理解为什么会生成一个你看到的执行计划 ...
- TiDB 优化之消失的统计信息
优化慢SQL是每一个DBA都不可避免的一项职责,而慢SQL很多都是系统响应时间长的罪魁祸首,而优化慢SQL的执行效率也受到统计信息过期的影响. 统计信息是指数据库描述表或者索引数据特征的信息,常见的有 ...
- 管好统计信息,开启SQL优化之门
遇到执行效率低下的SQL语句,对于DBA而言无疑是家常便饭了,但如何快速优化,把它变成小菜一碟,则得看看咱们DBA+社群联合发起人卢飞的经验之谈了. 专家简介 卢飞 DBA+社群联合发起人 Oracl ...
最新文章
- CIA困局:天下再无007,AI识别下无处遁行的“特工”们
- “优秀IT工程师”是什么样的?
- hough变换检测圆周_【视觉】视觉检测人应该了解的缺陷检测方法
- TMG2010发布web服务器
- html:(28):后代选择器和通用选择器
- 万物互联、应用现代化、云原生新范式,华为云为数字化转型提供最优解
- 谜题27:变幻莫测的i值
- mui 中template 的使用
- 频谱感知4:CCS硬合并中m-out-of-K准则下m与K的联合优化问题
- springboot + mybatis-plus + quaryz 数据库持久化任务调度
- 方剂学(综合练习)题库【2】
- 微信开发服务器端口号,微信公众号开发步骤
- 【DP】饥饿的WZK(hunger)
- 【机器学习】完整的机器学习项目演练:第一部分
- 那周余嘉熊掌将得队对男上加男,强人所男、修!咻咻! 团队的Beta产品测试报告...
- 从今以后我一个人唱悲伤情歌:伤感的QQ空间日志
- 生物信息-学习从NCBI上下载数据
- 【Fiddle】The Fiddler AutoResponder is enabled, but this request did not match any of the listed rules
- WLAN@Wi-Fi
- r语言中判断属于回纹元素_R语言中的回归诊断-- car包