bitmap索引产生_enq: TX - row lock contention

问题现状:
前台业务反应平台崩掉,直接表现:卡,慢。
监控发现:
在这里插入图片描述
AWR报告top10:
在这里插入图片描述
发现enq: TX - row lock contention 等待事件。
问题处理:
查找DBA_HIST_ACTIVE_SESS_HISTORY ,定位具体原因

SELECT tt.SAMPLE_TIME,
       dd.OWNER,
       dd.OBJECT_NAME,
       dd.OBJECT_TYPE,
       aa.sql_text,
       tt.*
  FROM (SELECT D.current_obj#,
               D.current_file#,
               D.current_block#,
               D.current_row#,
               D.EVENT,
               D.P1TEXT,
               D.P1,
               D.P2TEXT,
               D.P2,
               CHR(BITAND(P1, -16777216) / 16777215) ||
               CHR(BITAND(P1, 16711680) / 65535) "Lock",
               BITAND(P1, 65535) "Mode",
               (case
                 when BITAND(P1, 65535) = 1 then
                  'null mode'
                 when BITAND(P1, 65535) = 2 then
                  'sub-share'
                 when BITAND(P1, 65535) = 3 then
                  'sub-exclusive'
                 when BITAND(P1, 65535) = 4 then
                  'share'
                 when BITAND(P1, 65535) = 5 then
                  'share/sub-exclusive'
                 when BITAND(P1, 65535) = 6 then
                  'exclusive'
               end) as mode_mc,
               D.BLOCKING_SESSION,
               D.BLOCKING_SESSION_STATUS,
               D.BLOCKING_SESSION_SERIAL#,
               D.SQL_ID,
               TO_CHAR(D.SAMPLE_TIME, 'YYYY-MM-DD HH24:MI:SS') SAMPLE_TIME
          FROM DBA_HIST_ACTIVE_SESS_HISTORY D
         WHERE D.SAMPLE_TIME BETWEEN
               TO_DATE('2019-12-19 09:30:00', 'YYYY-MM-DD HH24:MI:SS') AND
               TO_DATE('2019-12-19 11:50:00', 'YYYY-MM-DD HH24:MI:SS')
           AND D.EVENT = 'enq: TX - row lock contention') tt
  left join dba_objects dd
    on dd.OBJECT_ID = tt.current_obj#
  left join v$sql aa
    on aa.sql_id = tt.sql_id

执行结果:
在这里插入图片描述
通过sql查询发现,大量的delete语句,造成Share锁。根据OBJECT_NAME和OBJECT_TYPE ,很显而易见由于bitmap索引造成大量share锁。
bitmap的特性:位图索引的一个键值,会指向多行记录,所以更新一行就会把该键值指向的所有行锁定。此时会话请求锁的对应的请求模式是4。bitmap索引的物理结构和普通索引一样,也是 B-tree 结构,但它存储的数据记录的逻辑结构为"key_value,start_rowid,end_rowid,bitmap"。由此我们可知,前台业务平凡的更新业务表造成大量的锁等待从而造成严重的数据库性能问题。
故先去除位该图索引,恢复业务,观察业务现状。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值