暂无图片
Oracle 有没有语句 查出,是哪个程序锁住了表?
我来答
分享
暂无图片 匿名用户
Oracle 有没有语句 查出,是哪个程序锁住了表?

Oracle 有没有语句 查出,是哪个程序锁住了表?

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
PiscesCanon

官方提供的sql:

SELECT S.USERNAME,
SUBSTR(O.NAME, 1, 15) OBJECT_NAME,
DECODE(LV, 1, 'Holder: ' || S.SID, 'Waiter: ' || S.SID) SID,
DECODE(L.LMODE, 0, 'None', 1, 'Null', 2, 'Row-S (SS)', 3, 'Row-X (SX)', 4, 'Share', 5, 'S/Row-X (SSX)', 6, 'Exclusive', TO_CHAR(L.LMODE)) LOCK_MODE,
TRUNC(L.CTIME / 3600) || ':' || TRUNC(MOD(L.CTIME, 3600) / 60) || ':' || MOD(L.CTIME, 60) CTIME,
S.STATUS,
S.MACHINE,
S.SQL_ID,
Q.SQL_TEXT
FROM (SELECT /*+ NO_MERGE */(3-LEVEL) LV,
INST_ID,
SID,
TYPE,
LMODE,
CTIME
FROM (SELECT /*+ NO_MERGE */A.INST_ID,
A.SID,
A.TYPE,
A.LMODE,
A.REQUEST,
CASE
WHEN REQUEST = 0 THEN ID1
END ID1,
CASE
WHEN REQUEST > 0 THEN ID1
END ID3,
A.CTIME
FROM GV$LOCK A
WHERE A.TYPE <> 'MR') START WITH REQUEST > 0 CONNECT BY PRIOR ID3 = ID1) L,
GV$SESSION S,
GV$PROCESS P,
SYS.OBJ$ O,
GV$SQL Q
WHERE L.SID = S.SID
AND L.INST_ID = S.INST_ID
AND S.INST_ID = P.INST_ID(+)
AND S.PADDR = P.ADDR(+)
AND S.ROW_WAIT_OBJ# = O.OBJ#(+)
AND L.CTIME >= 1
AND S.SQL_ID = Q.SQL_ID(+)
GROUP BY DECODE(LV, 1, 'Holder: ' || S.SID, 'Waiter: ' || S.SID), S.INST_ID, S.USERNAME, O.NAME, L.TYPE, L.LMODE, L.CTIME, S.STATUS, S.MACHINE,S.SQL_ID,Q.SQL_TEXT;


效果如下:



想要程序名,更改调整sql,自己加上s.program字段

暂无图片 评论
暂无图片 有用 1
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
Oracle 12c导出的dmp怎么导入11g啊,或者导出低版本的dmp?
回答 2
已采纳
12cexpdp命令行加入version想导入的数据库版本号
ORACLE时间同步问题
回答 2
oracle根据自己scn号存数据,如果不从数据库服务器上获取时间,感觉两个节点时间差异不大可以忽略;可以用ntp和chrony做时间服务器,或者用oracle自己的ctss服务,ctss可以参考如下
应用缓慢,帮忙分析awr报告看看,谢谢
回答 2
已采纳
AWR分析结果:156766448327091环境oracle(ODS库).html
ORCL数据库配置为支持共享服务器模式。 您要确保远程连接到数据库实例的用户在客户端和服务器进程之间具有一对一的比率。哪种连接方法可以保证满足此要求?
回答 2
已采纳
C使用本地命名方法与网络服务的tnsnames.ora文件中设置的SERVERDEDICATED参数进行连接
ogg oracle-mysql 源端传输进程起不来
回答 10
oggoraclesqlserver。oracle版本11.2.0.4sqlserver版本是2012。ogg版本是源端123011ggsWindowsx64MSSQL64bitCDC.zip,目标端
oracle rac 12.2.0.1 ora-04031
回答 7
上传附件:175rac1awr2019102905.html.gz
回收站
回答 2
一方面是用来清理空间,另一方面清理数据字典,防止升级引发bug导致系统不可用
rac scan IP数量问题
回答 1
多个scanip,多个监听,高可用,rac的负载均衡效果更好
ORA-30732: 表中不包含可见的列
回答 2
已采纳
可能是查询了一个系统表或者确实存在不可见的字段要么就是数据字典不一致导致的
Oracle报错无监听程序,如何解决?
回答 1
看一下监听状态是否正常?