sql Tuning Advisor启用导致业务性能问题

数据库每天晚上10点后业务性能很卡,大量的insert被堵塞,查询等待事件发现有大量的“library cache lock”和“cursor: pin S wait on X”。

22:00数据库的统计信息开始收集, Sql Tuning Advisor堵塞了统计信息的收集,等待事件是“library cache lock”,Sql Tuning Advisor的等待事件是ON CUP。后续导致insert大量堵塞。

查询ash记录:

select sample_time,
       instance_number,
       session_id,
       session_serial#,
       sql_id,
       top_level_sql_id,
       sql_opname,
       sql_exec_id,
       sql_exec_start,
       event,
       session_state,
       seq#,
       blocking_session,
       blocking_session_serial#,
       blocking_inst_id,
       p1text,
       p1,
       p2text,
       p2,
       p3text,
       p3,
       top_level_call_name,
       program,
       in_hard_parse
  from dba_hist_active_sess_history
 where sample_time >
       to_date('2024-03-20 22:00:00', 'yyyy-MM-dd HH24:mi:ss')
   and sample_time <
       to_date('2024-03-20 22:20:00', 'yyyy-MM-dd HH24:mi:ss')
   and event = 'library cache lock'
 order by sample_time;

检查等待事件:

sql_id:b6usrg82hwsa3,正在执行统计信息收集,dbms_stats.gather_database_stats_job_proc ( )

查看业务卡顿时的blocking_session,主要发生在dbms_sqltune.execute_tuning_task('SYS_AUTO_SQL_TUNING_TASK')

11g之后 的三个自动job

除了收集统计信息有必要保留之外,另外两个其实用处不大,SQL tuning advisor虽然可以帮助我们诊断、分析和优化SQL语句的性能问题,但也只是收集。

所以可以禁用:

exec DBMS_AUTO_TASK_ADMIN.disable(client_name=>'sql tuning advisor',operation=>NULL,window_name=>NULL);
exec DBMS_AUTO_TASK_ADMIN.disable(client_name=>'auto space advisor',operation=>NULL,window_name=>NULL);

官方文档里也有提到这可能是个bug:

ORA 7445 [qcuatc] from SQL Tuning Advisor job. (Doc ID 2506947.1)    

  • 28
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值