SELECT (   '节点 '

          || a.inst_id

          || ' session '

          || a.sid

          || ','

          || a_s.serial#

          || ' 阻塞了 节点 '

          || b.inst_id

          || ' session '

          || b.sid

          || ','

          || b_s.serial#)

            blockinfo,

         a.inst_id,

         a_s.sid,

         a_s.schemaname,

         a_s.module,

         a_s.status,

         a.TYPE lock_type,

         a.id1,

         a.id2,

         DECODE (a.lmode,

                 0, 'none',

                 1, NULL,

                 2, 'row-S (SS)',

                 3, 'row-X (SX)',

                 4, 'share (S)',

                 5, 'S/Row-X (SSX)',

                 6, 'exclusive (X)')

            lock_mode,

         '后为被阻塞信息' remark_flag,

         b.inst_id blocked_inst_id,

         b_s.sid blocked_sid,

         b.TYPE blocked_lock_type,

         DECODE (b.request,

                 0, 'none',

                 1, NULL,

                 2, 'row-S (SS)',

                 3, 'row-X (SX)',

                 4, 'share (S)',

                 5, 'S/Row-X (SSX)',

                 6, 'exclusive (X)')

            blocked_lock_request,

         b_s.schemaname blocked_schemaname,

         b_s.module blocked_module,

         b_s.status blocked_status,

         b_s.sql_id blocked_sql_id,

         obj.owner blocked_owner,

         obj.object_name blocked_object_name,

         obj.object_type blocked_object_type,

         CASE

            WHEN b_s.row_wait_obj# <> -1

            THEN

               DBMS_ROWID.rowid_create (1,

                                        obj.data_object_id,

                                        b_s.row_wait_file#,

                                        b_s.row_wait_block#,

                                        b_s.row_wait_row#)

            ELSE

               '-1'

         END

            blocked_rowid,  --被阻塞数据的rowid

         DECODE (obj.object_type,

                 'TABLE',    'select * from '

                          || obj.owner

                          || '.'

                          || obj.object_name

                          || ' where rowid='''

                          || DBMS_ROWID.rowid_create (1,

                                                      obj.data_object_id,

                                                      b_s.row_wait_file#,

                                                      b_s.row_wait_block#,

                                                      b_s.row_wait_row#)

                          || '''',

                 NULL)

            blocked_data_querysql

    FROM gv$lock a,

         gv$lock b,

         gv$session a_s,

         gv$session b_s,

         dba_objects obj

   WHERE     a.id1 = b.id1

         AND a.id2 = b.id2

         AND a.block > 0    --阻塞了其他人

         AND b.request > 0

         AND (   (a.inst_id = b.inst_id AND a.sid <> b.sid)

              OR (a.inst_id <> b.inst_id))

         AND a.sid = a_s.sid

         AND a.inst_id = a_s.inst_id

         AND b.sid = b_s.sid

         AND b.inst_id = b_s.inst_id

         AND b_s.row_wait_obj# = obj.object_id(+)

ORDER BY a.inst_id, a.sid;

Oracle中的阻塞锁SQL(阻塞在哪个数据上)的更多相关文章

  1. 查看Oracle中是否有锁表

    转: 查看Oracle中是否有锁表 2018-04-23 17:59 alapha 阅读(19450) 评论(0) 编辑 收藏 一.用dba用户登录,或者将用户赋权为DBA用户 命令: su - or ...

  2. Oracle中INSTR函数与SQL Server中CHARINDEX函数

    Oracle中INSTR函数与SQL Server中CHARINDEX函数 1.ORACLE中的INSTR INSTR函数格式:INSTR(源字符串, 目标字符串, 起始位置, 匹配序号) 说明:返回 ...

  3. SqlServer和Oracle中一些常用的sql语句9 SQL优化

    --SQL查询优化 尽量避免使用or,not,distinct运算符,简化连接条件 /*Or运算符*/ use db_business go select * from 仓库 where 城市='北京 ...

  4. Oracle中如何添加和修改包含日期的数据

    平时我们在sql sverver中我们添加包含日期的数据时,是直接将日期变成日期格式字符串,但是在Oracle中就不行了, 那么,如何添加包含日期数据 如:在oracle执行insert语句 /** ...

  5. 在oracle中使用merge into实现更新和插入数据

    目录 oracle中使用merge into DUAL表解释 使用场景 用法 单表 多表 oracle中使用merge into DUAL表解释 在Oracle数据库中,dual是Oracle中的一个 ...

  6. 查看Oracle中是否有锁表的sql

    1.查看是否有锁表的sql 代码如下: select 'blocker('||lb.sid||':'||sb.username||')-sql:'|| qb.sql_text blockers, 'w ...

  7. oracle 中v$sqlarea,v$sql,v$session,gv$session,远程连接等问题

    一.分析 (1)使用 least recently used (LRU) algorithm 来管理的,不用的自动踢出,可以使用keep 将需要的语句 保存在 library cache中. 所以应该 ...

  8. SqlServer和Oracle中一些常用的sql语句10 特殊应用

    --482, ORACLE / SQL SERVER --订购数量超过平均值的书籍 WITH Orders_Book AS ( SELECT Book_Name, SUM(Qty) Book_Qty ...

  9. 在Oracle中利用SQL_TRACE跟踪SQL的执行

    当你在执行一条SQL语句非常慢的时候,你是不是想问Oracle怎么执行这条语句的呢? Oracle提供的SQL_TRACE工具可以让你知道你执行的SQL究竟做了什么.执行的过程会被 输出到trace文 ...

随机推荐

  1. 我的第一个html页面

    <!DOCTYPE html><meta charset="UTF-8"><title>第一个html5界面</title>< ...

  2. 关于XML与类型Class的映射

    我们知道数据的持久化是编程必须面对的问题.我们可以保存数据到数据库.Excel表.XML文件.TXT文件等等.那么我们编程中经常会遇到对Xml文件的操作.在http://www.cnblogs.com ...

  3. mysql net连接读取结果为乱码 Incorrect string value

    在mysql直接查询中文正常,通过连接到mysql读取中文内容为乱码.同时插入中文内容也失败提示 Incorrect string value: '\xBC\xA4\xB7\xA2\xBF\xB4.. ...

  4. 学习C++ Primer 的个人理解(六)

    第四章和第五章没什么特别的.基本上就是书本上的字面意思,也没什么需要注意的细节.直接记录第六章. 本章介绍了函数,其实也没什么特别的.但有几个重点 1.形参的类型决定了形参和实参的交互方式.形参是引用 ...

  5. CSS3 基本知识

    1.CSS3 简介 CSS 指层叠样式表 (Cascading Style Sheets),用于控制网页的样式和布局,CSS3 是最新的 CSS 标准. 在网页制作时采用层叠样式表,可以有效的对页面的 ...

  6. Demo学习: CellDraw

    CellDraw 学习TUniStringGrid,为什么有些设置在web模式下无效? case TUniBitBtn(Sender).Tag of : UniStringGrid1.ColWidth ...

  7. Python 多进程

    import threading from time import sleep from msalt_proxy.client import Client def f(t): print t cli= ...

  8. 2.Hashing

    散列法(Hashing)或哈希法是一种将字符组成的字符串转换为固定长度(一般是更短长度)的数值或索引值的方法,称为散列法,也叫哈希法.由于通过更短的哈希值比用原始值进行数据库搜索更快,这种方法一般用来 ...

  9. Html5 布局经验分享-第1集

    移动端的布局与pc端的布局相比 移动端的布局就简单的多,兼容性不必考虑那么多,css3各种特性基本上是可以放肆的写:(个人看法) 本人做移动web 布局一段时间了,把这其中遇到的一些问题总结下来,均是 ...

  10. windows下STM32开发环境的搭建

    一.概述 1.说明 笔者已经写了一篇Linux下STM32开发环境的搭建 ,这两篇文章的最区别在于开发环境所处的系统平台不一样,而其实这个区别对于开发环境的搭建其实影响不大,制作局部上的操作上发生了改 ...