Oracle Lock Related Queries

Based on Oracle 10g/11g

-- show lock contention
-- v$session.ROW_WAIT_OBJ# = dba_objects.OBJECT_ID
-- substr('AALha7AALAAApxMAAA',1,6) <=> dbms_rowid.ROWID_OBJECT = dba_objects.DATA_OBJECT_ID
SELECT NVL ((SELECT CASE
                      WHEN l.BLOCK = 1
                        THEN 'Holder'
                      WHEN l.request > 0
                        THEN 'Waiter'
                    END
               FROM v$lock l
              WHERE lo.session_id = l.SID
                AND (   l.BLOCK = 1
                     OR l.request > 0))
           ,'Locker') ROLE
      , se.SID || ',' || se.serial# sid_serial
      ,se.blocking_session wait_for
      , o.owner || '.' || o.object_name owner_object
      ,se.username
      ,se.status
      ,se.osuser
      ,se.machine
      ,se.program
      ,se.action
      ,DECODE (o.TEMPORARY
              ,'N', DBMS_ROWID.rowid_create (1
                                            ,o.data_object_id
                                            ,se.row_wait_file#
                                            ,se.row_wait_block#
                                            ,se.row_wait_row#
                                            )
              ,'Y', NULL
              ) row_id
      ,sq.sql_text
  FROM v$locked_object lo
      ,dba_objects o
      ,v$session se
      ,v$sql sq
 WHERE lo.object_id = o.object_id
   AND lo.session_id = se.SID
   AND se.sql_address = sq.address(+)
   AND se.sql_hash_value = sq.hash_value(+);

-- sql to kill locked session
ALTER SYSTEM DISCONNECT SESSION '263,48203' IMMEDIATE;
ALTER SYSTEM KILL SESSION '276,27825' IMMEDIATE;


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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值