暂无图片
Oracle中查看正在运行的SQL语句,怎么查看?
我来答
分享
不是小熊
2022-02-21
Oracle中查看正在运行的SQL语句,怎么查看?

Oracle中查看正在运行的SQL语句,怎么查看?

我来答
添加附件
收藏
分享
问题补充
2条回答
默认
最新
薛晓刚

如果不是锁,执行很快不太可能看得到。

select sess.sid,

sess.serial#,

lo.oracle_username,

lo.os_user_name,

ao.object_name,

lo.locked_mode,

sess.MACHINE,

sess.PROGRAM,

s.SQL_FULLTEXT,

sess.LOGON_TIME,

sess.LOCKWAIT,

sess.STATUS,

sess.SQL_ID,

sess.LAST_CALL_ET,g.BLOCKING_SESSION

from v$locked_object lo,

dba_objects ao,

v$session sess,

v$sql s,

gv$session g

where ao.object_id = lo.object_id and lo.session_id = sess.sid and s.SQL_ID=sess.PREV_SQL_ID and sess.sid=g.sid;

如果是锁,这样就能看到是运行的SQL情况。

暂无图片 评论
暂无图片 有用 1
暂无图片
DarkAthena

查正在运行的会话

select * from v$session where username is not null and status = 'ACTIVE' order by logon_time, sid;

可以得到 sql_address 和 sql_hash_value ,再带入下面这个sql进行查询,即可得目前正在执行的sql

select sql_text from v$sqltext_with_newlines where address = hextoraw(:sql_address) and hash_value = :sql_hash_value order by piece /* concatenate */

(v$sqltext_with_newlines 可以替换成 v$sqltext)

当然也可以把这两个视图直接关联起来查。

另外,如果是rac,注意两个视图都要换成"GV"开头的视图,并多加一个inst_id的关联条件

暂无图片 评论
暂无图片 有用 1
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏