oracle数据库event堵塞问题分析



数据库发生了堵塞,例如大量latch free,大量log file sync, 大量enq , 需要尽快查看并备份当前的v$active_session_history表,以免1s一次的统计数据被覆盖。 被覆盖后只能查dba_hist_active_sess_history,根据snapshot的频率不同(一般15分钟一次)而记录的历史统计数据。

关键点: 找到大量堵塞event的holder,看holder在等待什么。 被阻塞的可能只是现象,阻塞别人的才是原因。 比较典型的是一大堆的log file sync,但是最后发现holder在等待buffer busy waits,最终还是sql的效率问题。

分析方法举例:
阻塞别的session最多的前3位是session 2175,2748,2040:
select sample_time,blocking_session,count(*) from  v$active_session_history
where sample_id=169320437
group by sample_time,blocking_session order by 3 desc
;

峰值时刻:16:20:46
阻塞别的session最多的前3位session是:528,1432,1156:
select blocking_session,count(*) from  v$active_session_history
where sample_time>=to_date('2014-08-15 16:20:46','yyyy-mm-dd hh24:mi:ss')
and  sample_time<=to_date('2014-08-15 16:20:47','yyyy-mm-dd hh24:mi:ss')
group by blocking_session order by 2 desc

观察其这一时刻的blocking session链条:
--如462(enq: TX - index contention) -> 2175(buffer busy waits) ->2304(buffer busy waits)
--如581(log file sync)->2748(log file parallel write)
--如824(buffer busy waits) ->2040(enq: TX - index contention) -> 2175(buffer busy waits) ->2304(buffer busy waits)



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值