oracle 8
2015-10-20 19:34
603 查看
锁定查询系列...
----------------------------------------
Q: 如何查询哪些进程相互锁定?
A: 执行以下SQL语句
set pages 800
set lines 150
column blocking format a30
column blocked format a30
select 'INST_ID:'||l1.inst_id||',SID:'||l1.sid "Blocking", 'INST_ID:'||l2.inst_id||',SID:'||l2.sid "Blocked"
from gv$lock l1, gv$lock l2
where l1.block = 1 and l2.request > 0
and l1.id1 = l2.id1 and l1.id2 = l2.id2
/
Q: 如何查询哪些对象被哪些进程锁定?
A: 执行以下SQL语句查询所有对象
set pages 800
set lines 150
column object_name format a40
select s.inst_id,s.sid,s.serial#,o.owner,o.object_name,o.object_type,l.locked_mode
from gv$session s,
gv$locked_object l,
dba_objects o
where s.sid = l.session_id
and s.inst_id = l.inst_id
and l.object_id = o.object_id
/
Q: 如何查询某特定对象被哪些进程锁定?
A: 执行以下语句查询特定对象
select s.inst_id,s.sid,s.serial#,o.owner,o.object_name,o.object_type,l.locked_mode
from gv$session s,
gv$locked_object l,
dba_objects o
where s.sid = l.session_id
and s.inst_id = l.inst_id
and l.object_id = o.object_id
and o.owner = '&owner_name'
and o.object_name = '&object_name'
/
Q: 如何查询那个进程锁死了用户对象(library cache pin and lock)?
A: 执行以下查询
select /*+ ordered */
hs.sid||','||hs.serial#||',@'||hs.inst_id holding_session,
ws.sid||','||ws.serial#||',@'||ws.inst_id waiting_session,
wl.kgllktype lock_or_pin,
decode(hl.kgllkmod, 0, 'None', 1, 'Null', 2, 'Share', 3, 'Exclusive',
'Unknown') mode_held,
decode(wl.kgllkreq, 0, 'None', 1, 'Null', 2, 'Share', 3, 'Exclusive',
'Unknown') mode_requested
from dba_kgllock wl, dba_kgllock hl, gv$session ws, gv$session hs
where hl.kgllkmod not in (0,1) and hl.kgllkreq in (0,1)
and wl.kgllkmod in (0,1) and wl.kgllkreq not in (0,1)
and wl.kgllktype = hl.kgllktype
and wl.kgllkhdl = hl.kgllkhdl
and wl.kgllkuse = ws.saddr
and hl.kgllkuse = hs.saddr
/
----------------------------------------
Q: 如何查询哪些进程相互锁定?
A: 执行以下SQL语句
set pages 800
set lines 150
column blocking format a30
column blocked format a30
select 'INST_ID:'||l1.inst_id||',SID:'||l1.sid "Blocking", 'INST_ID:'||l2.inst_id||',SID:'||l2.sid "Blocked"
from gv$lock l1, gv$lock l2
where l1.block = 1 and l2.request > 0
and l1.id1 = l2.id1 and l1.id2 = l2.id2
/
Q: 如何查询哪些对象被哪些进程锁定?
A: 执行以下SQL语句查询所有对象
set pages 800
set lines 150
column object_name format a40
select s.inst_id,s.sid,s.serial#,o.owner,o.object_name,o.object_type,l.locked_mode
from gv$session s,
gv$locked_object l,
dba_objects o
where s.sid = l.session_id
and s.inst_id = l.inst_id
and l.object_id = o.object_id
/
Q: 如何查询某特定对象被哪些进程锁定?
A: 执行以下语句查询特定对象
select s.inst_id,s.sid,s.serial#,o.owner,o.object_name,o.object_type,l.locked_mode
from gv$session s,
gv$locked_object l,
dba_objects o
where s.sid = l.session_id
and s.inst_id = l.inst_id
and l.object_id = o.object_id
and o.owner = '&owner_name'
and o.object_name = '&object_name'
/
Q: 如何查询那个进程锁死了用户对象(library cache pin and lock)?
A: 执行以下查询
select /*+ ordered */
hs.sid||','||hs.serial#||',@'||hs.inst_id holding_session,
ws.sid||','||ws.serial#||',@'||ws.inst_id waiting_session,
wl.kgllktype lock_or_pin,
decode(hl.kgllkmod, 0, 'None', 1, 'Null', 2, 'Share', 3, 'Exclusive',
'Unknown') mode_held,
decode(wl.kgllkreq, 0, 'None', 1, 'Null', 2, 'Share', 3, 'Exclusive',
'Unknown') mode_requested
from dba_kgllock wl, dba_kgllock hl, gv$session ws, gv$session hs
where hl.kgllkmod not in (0,1) and hl.kgllkreq in (0,1)
and wl.kgllkmod in (0,1) and wl.kgllkreq not in (0,1)
and wl.kgllktype = hl.kgllktype
and wl.kgllkhdl = hl.kgllkhdl
and wl.kgllkuse = ws.saddr
and hl.kgllkuse = hs.saddr
/
相关文章推荐
- oracle 7
- oracle 6
- oracle 4
- oracle 3
- oracle 2
- 如何用Excel直接查询Oracle中的数据(转)
- oracle oracle中ORA-00923: 未找到要求的 FROM 关键字
- IE11 打开Oracle ERP报错的解决方法
- 定时每天执行前一天的数据导入oracle
- sqoop导入hdfs上的数据到oracle
- 本地搭建gitlab环境,配置邮件通知和基本操作
- ORACLE数据恢复方法(提交事务也可以)
- oracle pl/sql之sql中的复合变量之记录类型
- oracle第三周
- 【转】Oracle存储过程常用技巧
- oracle 死锁
- 【转】Oracle存储过程学习
- 32位plsql配置连接64位ORACLE 11g的方法
- oracle免安装服务器,pl/sql加instantclient的配置使用
- 如何用Excel直接查询Oracle中的数据