Oracle 动态视图1 V$LOCK
v$lock显示数据库当前持有锁情况
| Column | Datatype | Description |
| SID | NUMBER | 会话ID |
| TYPE | VARCHAR2(2) | 表示锁的类型。值包括TM,TX,等 |
| ID1 | NUMBER |
对于TM锁:ID1表示被锁定表的object_id 可以和dba_objects视图关联取得具体表信息; 对于TX锁:ID1以十进制数值表示该事务所占用的回滚段号和事务槽slot number号 |
| ID2 | NUMBER | 对于TM锁:ID2 值为0;对于TX锁:ID2 以十进制数值表示事务槽被重用的次数 |
| LMODE | NUMBER | 持有锁模式: |
| 0 - none | ||
| 1 - null (NULL) | ||
| 2 - row-S (SS) | ||
| 3 - row-X (SX) | ||
| 4 - share (S) | ||
| 5 - S/Row-X (SSX) | ||
| 6 - exclusive (X) | ||
| REQUEST | NUMBER | 申请锁模式: |
| 0 - none | ||
| 1 - null (NULL) | ||
| 2 - row-S (SS) | ||
| 3 - row-X (SX) | ||
| 4 - share (S) | ||
| 5 - S/Row-X (SSX) | ||
| 6 - exclusive (X) | ||
| CTIME | NUMBER | 持有锁的时间 |
| BLOCK | NUMBER | 是否正在阻塞其他会话锁申请 1:阻塞 0:不阻塞 |
示例展示:
会话1
--查看当前会话1持有锁情况
select sid,type,id1,id2,lmode,request,block
from v$lock
where sid in (select sid from v$mystat where rownum=1); 无记录 --加锁
select * from t1 for update ; --查看加锁后的v$lock
SQL> select sid,type,id1,id2,lmode,request,block
2 from v$lock
3 where sid in (select sid from v$mystat where rownum=1); SID TY ID1 ID2 LMODE REQUEST BLOCK
---------- -- ---------- ---------- ---------- ---------- ----------
133 TM 53252 0 3 0 0
133 TX 196630 636 6 0 0 --当前会话持有两种类型锁:TM(表级锁),TX(行级锁)。锁模式分别为:3,6。BLOCK为:0
会话2
--开启会话2
--查看当前会话2持有锁情况
select sid,type,id1,id2,lmode,request,block
from v$lock
where sid=140; 无记录 --加锁
select * from t1 for update ; 会话夯住了
切回会话1
--切换的会话1 查看两个会话持锁状态
SQL> select sid,type,id1,id2,lmode,request,block
2 from v$lock
3 where sid in (133,140); SID TYPE ID1 ID2 LMODE REQUEST BLOCK
---------- -- ---------- ---------- ---------- ---------- ----------
133 TX 196630 636 6 0 1
133 TM 53252 0 3 0 0
140 TX 196630 636 0 6 0
140 TM 53252 0 3 0 0
SQL> --会话133: TYPE(tm) lmode(3) block(0)
TYPE(tx) lmode(6) block(1) --在行级持有排它锁,并正在阻塞其它会话 --会话140:TYPE(tm) lmode(3) block(0)
TYPE(tx) request(6) block(0) --正在申请行级排它锁
相关锁的知识介绍:Oracle Lock 概述
Oracle 动态视图1 V$LOCK的更多相关文章
- oracle动态视图v$,v_$,gv$,gv_$与x$之间的关系
前言:在oracle运维的过程中,经常会使用到一些以V$开头的动态视图,比如V$session, 有一次偶然看到有人用V_$session, 初以为别人写错了,没想到desc v_$session以后 ...
- Oracle 动态视图3 V$SESSION
每一个连接到数据库实例中的session都拥有一条记录.包括用户session及后台进程如DBWR,LGWR,arcchiver等 Column Datatype Description SADDR ...
- Oracle 动态视图6 V$PROCESS
一.视图包含当前系统oracle运行的所有进程信息.常用于将session与进程(oracle进程,操作系统进程)之间建立联系. Column Datatype Description ADDR RA ...
- Oracle 动态视图2 V$LOCKED_OBJECT
v$locked_object视图列出当前系统中哪些对象正被锁定 Column Datatype Description XIDUSN NUMBER 回滚段号 XIDSLOT NUMBER 槽号 XI ...
- Oracle 动态视图5 V$SESSION_LONGOPS
一.视图V$SESSION_LONGOPS显示运行超过6秒的操作的状态.包括备份,恢复,统计信息收集,查询等等 Column Datatype Description SID NUMBER Sessi ...
- Oracle 动态视图4 V$SESSION_WAIT & V$SESSION_EVENT
一.视图V$SESSION_WAIT显示了session的当前等待事 Column Datatype Description SID NUMBER Session identifier SEQ# NU ...
- 关于oracle动态视图v$datafile和v$datafile_header(转)
v$datafile是从oracle的控制文件中获得的数据文件的信息v$datafile_header是从数据文件的头部在正常运行下,两者的检查点SCN值是一致的,但当datafile出现损坏时可以用 ...
- oracle动态视图(一)stat
1v$mystat,v$sesstat,v$sysstat是用来分别统计用户级,会话级,系统级信息的. SID NUMBER STATI ...
- ORACLE动态sql在存储过程中出现表或视图不存在的解决方法
Oracle动态sql在存储过程中出现表或视图不存在的解决方法 CREATE OR REPLACE PROCEDURE P_test is strsql varchar2(2000); BEGIN ...
随机推荐
- cocos2d-x中使用sqlite
在单机游戏中有几十个场景道具,每一个都有各自的状态(获得.未获得.获得个数)等等,如果在游戏中平凡涉及到这些道具的实时存储,那么使用文本就会稍慢.可以使用sqlite数据库来完成. 下载地址:http ...
- hadoop学习记录(一)HDFS
hadoop的灵感源于谷歌,最初目的是解决传统数据库处理数据成本高和速度慢的问题. hadoop两个核心项目是HDFS(hadoop分布式文件系统)和MapReduce. HDFS用来实现数据的存储, ...
- linux-统计行数
wc -l ls |wc -l 查看文件夹下的行数 cat/less/more +文件名|wc -l
- 【思路、优化】UVa 11491 - Erasing and Winning
Juliano is a fan of the TV show Erasing and Winning, where participants are selected in a draw and r ...
- 会话跟踪技术——cookie
一.会话控制 为了使得网站可以跟踪客户端与服务器之间的交互,保存和记忆每个用户的身份和信息,我们需要一种强有力的解决方案,这样就产生了会话控制. HTTP是一个无状态的协议,此协议无法来维护两个事务之 ...
- Java Concurrency - Lock
Lock 是 Java API 提供的另一种线程同步机制,它提供了比 synchronized 关键字更为灵活.强大的锁定操作. 锁是控制多个线程对共享资源进行访问的工具.通常,所提供了对共享资源的独 ...
- Linux 命令 - history: 显示或操作历史列表
命令格式 history [-c] [-d offset] [n] history -anrw [filename] history -ps arg [arg...] 命令参数 -c 清除历史列表. ...
- PL/SQL Developer连接远程Oracle数据库
转自:http://zhengdu.net/archives/152 一.首先看远程端oracle服务是否启动 如果没有启动,请启动oracle服务 ps:创建或者删除oracle监听 二.远程端or ...
- HDOJ2017字符串统计
字符串统计 Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- C#中的二进制序列化和Json序列化
序列化就是把一个对象变成流的形式,方便传输和还原.小弟不才,总结下对二进制序列化和Json序列化的使用: 1.首先,二进制序列化(BinaryFormatter)要求要序列化的类必须是可序列化的(即在 ...