并且s.username不为空
- kill session语句
更改系统终止会话“50,492”;
-以下是相关表格。
SELECT * FROM v $ lock
SELECT * FROM v$sqlarea;
SELECT * FROM v $ session
SELECT * FROM v $ process
SELECT * FROM v $ locked _ object
SELECT * FROM all _ objects
SELECT * FROM v $ session _ wait
-1.找出锁定对象的会话信息和锁定对象的名称。
SELECT l.session_id sid,s.serial#,l.locked_mode,l.oracle_username,
操作系统用户名,机器,终端,对象名,登录时间
从v $锁定对象l,所有对象o,v $会话s
其中l.object_id = o.object_id
并且l.session_id = s.sid
按sid、s序列号排序;
-2.找出锁定表会话的SID、序列号、操作系统用户名、机器名、终端和执行的语句。
-比上述段落更多的sql_text和action
SELECT l.session_id sid,s.serial#,l.locked_mode,l.oracle_username,s.user#,
l.os _用户名,s .计算机,s .终端,a.sql_text,a .操作
从v$sqlarea a,v $会话s,v $锁定对象l
其中l.session_id = s.sid
并且s.prev_sql_addr = a.address
按sid、s序列号排序;
-3.找出锁表的SID、序列号、操作系统用户名、机器名、终端、类型、模式模式。
SELECT s.sid,s.serial#,s.username,s.schemaname,s.osuser,s.process,s.machine,
s终端,s登录时间,l类型
从v $会话s,v $锁l
其中s.sid = l.sid
并且s.username不为空
按sid排序;
该语句将在数据库中查找由DML语句生成的所有锁,您还可以查找,
任何DML语句实际上都生成两个锁,一个是表锁,另一个是行锁。
锁杀令
更改系统终止会话' sid,序列号'
SELECT /*+ rule */ s.username
decode(l.type,' TM ','表锁',
TX ','行锁定',
NULL) LOCK_LEVEL,
o .所有者,o .对象名称,o .对象类型,
s.sid、s序列号、s终端、s机器、s程序、s用户
从v$session s,v$lock l,dba_objects o
其中l.sid = s.sid
而l.id1 = o.object_id(+)
并且s.username不为空
如果有锁等待,我们可能想知道是谁锁定了手表并导致了等待。
下面的语句可以找出谁锁定了表,谁在等待。
上面的查询结果是一个树形结构。如果有子节点,说明有等待。
如果想知道锁使用了哪个回滚段,还可以将其与V$rollname关联起来,其中xidusn是回滚段的usn。
列用户名格式a10
列所有者格式a10
列对象名称格式a10
列对象类型格式a10
SELECT /*+ rule */ lpad(' ',decode(l.xidusn,0,3,0))||l.oracle_username用户名,
对象所有者,对象名称,对象类型,序列号
从v $锁定对象l,dba _对象o,v $会话s
其中l.object_id=o.object_id
并且l.session_id=s.sid
按o.object_id,xidusn DESC排序
关键词:oracle,锁定表,解锁表
优侠库网站每天提供最新最热门的安卓手机软件、游戏下载、分享热门手游资讯攻略教程、手机软件教程步骤,专注安卓手机游戏软件下载。本文链接:http://www.123down.cn/gonglue/227423.html