有一个人问,所以总结了一下。

http://www.itpub.net/528153.html

简单的总结一下。

首先v$session中的这几个字段的含义分别为

row_wait_row#---被锁定行的rownum,但是准确的说是对应的于rowid的rownum,并非是单纯的rownum。下面再详细的说。

row_wait_obj#---row_wait_row#对应的rowid所在的表的object id。

row_wait_file#-- row_wait_row#对应的rowid所在的数据文件id

row_wait_block#--row_wait_row#对应的rowid所在的block的id

只有一个session等待另一个session的时候,这几个列的值才是有效的。

想要知道某一个表具体被锁定的是哪一行,可以利用上面这几个值,查找出被锁定行的rowid。

使用dbms_rowidb包的一个子过程(Subprograms)rowid_create

DBMS_ROWID.ROWID_CREATE (

rowid_type    IN NUMBER,

object_number IN NUMBER,

relative_fno  IN NUMBER,

block_number  IN NUMBER,

row_number    IN NUMBER)

RETURN ROWID;

其中rowid_type的取值为 0 表示生成一个restricted ROWID(pre-oracle8 format); 取值为1 表示生成一个extended ROWID.

object_number取值是dba_objects视图中的data_object_id,并不是object_id,也就是说不能用row_wait_obj#.

relative_fno取值是Relative文件号,在dba_data_files里可以查到

block_number取值是数据文件的块号,也就是v$session中的row_wait_block#的值

row_number通过rowid对应出来的rownum,也就是row_wait_row#的值。

通过使用

select DBMS_ROWID.ROWID_CREATE(1,data_object_id,relative_fno,row_wait_block#,row_wait_row#) from dual;

查找出的rowid即为被锁定的行。

如果有多行数据被锁定,row_wait_row#显示的是靠''前''的行。

oracle查看被锁的行,查找被锁的表到底是哪一行被锁定了相关推荐

  1. Oracle用OEM和命令行方式创建用户及表空间

    目录 一.登录OEM 二.OEM分账户管理 2.1 创建永久表空间 2.2 创建临时表空间 2.3 创建用户 三.用命令行创建用户及表空间 3.1 创建临时表空间 3.2 创建永久表空间 3.3 创建 ...

  2. mysql记录锁与互斥锁区别_MySQL的各种锁认知

    一.相关名词 |--表级锁(锁定整个表) |--页级锁(锁定一页) |--行级锁(锁定一行) |--共享锁(S锁,MyISAM 叫做读锁) |--排他锁(X锁,MyISAM 叫做写锁) |--悲观锁( ...

  3. 【oracle查看被锁的表和解锁】

    oracle查看被锁的表和解锁 –以下几个为相关表 SELECT * FROM v l o c k ; S E L E C T ∗ F R O M v lock; SELECT * FROM v lo ...

  4. oracle查看dml锁表,【lock】我所认识的Oracle中的锁,DML锁、DDL锁、闩和内部锁。...

    这个问题很简单,你一定对锁有一个认识,但你未必对锁有一个明确的定义. 官方文档这样描述:Locks are mechanisms that prevent destructive interactio ...

  5. Oracle 查看被锁的表语句

    有时候执行插入或者更改表数据时发现执行到某个数据非常慢,一开始没有想到是锁表,后来查看果然是表是被锁了,但是Oracle的表被锁之后我一开始认为整个表的所有数据都更新不了可是我遇到的问题是部分数据更新 ...

  6. oracle 查看表被锁和如何解锁

    前提:该用户必须拥有DBA权限,否则提示找不到表和视图 一,oracle 查看哪些表被锁 select c.sid, c.serial#, c.username, c.osuser, b.owner, ...

  7. oracle查看锁表的sql

    oracle查看锁表的sql 关键表 V$LOCKED_OBJECT :记录锁信息的表 v$session :记录会话信息的表 v$sql:记录执行sql的表 dba_objects:用来管理对象(表 ...

  8. mysql的锁机制(读锁,写锁,表锁,行锁,悲观锁,乐观锁,间隙锁)

    读锁和写锁 介绍 MyISAM表锁中的读锁和写锁 读锁(共享锁S): 对同一个数据,多个读操作可以同时进行,互不干扰.加锁的会话只能对此表进行读操作,其他会话也只能进行读操作.MyISAM的读默认是加 ...

  9. oracle死锁trace,Oracle 学习之性能优化(十)锁

    锁(lock)是用于防止在访问相同的资源(包括用户对象.系统对象.内存.Oralce数据字典中的共享数据结构,最常见的是数据库表Table对象)时 ,事务之间的有害性 交互(存.取)的一种机制. 不同 ...

最新文章

  1. mysql免压缩安装教程_MySql免解压版安装教程
  2. Docker 的优势
  3. frp内网穿透-公网IP低成本使用高性能kali
  4. 三羊献瑞(暴力破解)
  5. 谷歌 Chrome Dev Tools 浅析 – 成为更高效的 Developer
  6. php的$_server例子,php全局变量$_SERVER的四个例子
  7. protobuf windows java_如何通过Eclipse在Windows中构建Protobuf for Java
  8. 根据配置文件的值创建不同对象
  9. 传智播客 with与“上下文管理器” 学习笔记
  10. 智能合约漏洞检测工具mythril使用
  11. Maya 界面与视图2
  12. element-ui 表格合并问题
  13. 腾讯Bugly的使用
  14. JavaScript实战练习——图片裁剪
  15. 苹果或将为iPhone 13全系配备LiDAR
  16. opencv-Python 目标跟踪(一)《Meanshift算法、Camshift算法》
  17. django 1.11.6—— Celery
  18. 【图表示学习】Graph Representation Learning 读书笔记(一)
  19. 文化部查处第九批违法游戏及经营活动的通知
  20. 实习期间总结遇到的Javascript常用函数

热门文章

  1. Shell之while循环
  2. ATF RT-SVC的介绍
  3. linux kernel中的栈的介绍
  4. 2022-01-04
  5. java 加减运算_JAVA日期加减运算 | 学步园
  6. Windows保护模式学习笔记(十三)—— PWTPCD
  7. SQL 统计表 b 对应表a个数,并赋值给表a的一个字段
  8. 1021 Deepest Root (25 分) 【难度: 中 / 知识点: 树的直径 连通块】
  9. Linux之Sed详解
  10. Spring boot登录错误提示