查看当前oracle中session中正在执行的SQL

本文介绍如何在Oracle数据库中使用SQL查询实时获取session信息,包括通过操作系统进程号、SID等方式定位具体会话,以及展示用户、机器、SQL文本等关键数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

/* Formatted on 2013/8/5 10:01:05 (QP5 v5.114.809.3010) */

spool /home/oracle/oracle_realtime_sqllist.txt

 

SET LINESIZE 100

SET PAGESIZE 50000

COL USERNAME FOR A10

COL machine FOR A15

COL sql_text FOR A50

 

  SELECT   SUBSTR (s.username, 1, 18) username,

           s.sid,

           s.serial#,

           s.machine,

           y.sql_text

    FROM   v$session s,

           v$process p,

           v$transaction t,

           v$rollstat r,

           v$rollname n,

           v$sql y

   WHERE       s.paddr = p.addr

           AND s.taddr = t.addr(+)

           AND t.xidusn = r.usn(+)

           AND r.usn = n.usn(+)

           AND s.username IS NOT NULL

           AND s.sql_address = y.address

--and s.sid=56

ORDER BY   s.sid,

           s.serial#,

           s.username,

           s.status;

 

spool off

 

2.查看某个session时,检索条件中指定s.sid值即可

/* Formatted on 2013/8/5 10:02:27 (QP5 v5.114.809.3010) */

SET LINESIZE 100

SET PAGESIZE 50000

COL USERNAME FOR A10

COL machine FOR A15

COL sql_text FOR A50

 

  SELECT   SUBSTR (s.username, 1, 18) username,

           s.sid,

           s.serial#,

           s.machine,

           y.sql_text

    FROM   v$session s,

           v$process p,

           v$transaction t,

           v$rollstat r,

           v$rollname n,

           v$sql y

   WHERE       s.paddr = p.addr

           AND s.taddr = t.addr(+)

           AND t.xidusn = r.usn(+)

           AND r.usn = n.usn(+)

           AND s.username IS NOT NULL

           AND s.sql_address = y.address

           AND s.sid = &sid

ORDER BY   s.sid,

           s.serial#,

           s.username,

           s.status

 

3.根据操作系统进程号查看某个session

/* Formatted on 2013/8/5 10:04:57 (QP5 v5.114.809.3010) */

  SELECT   SUBSTR (s.username, 1, 18) username,

           s.sid,

           s.serial#,

           s.machine,

           y.sql_text

    FROM   v$session s,

           v$process p,

           v$transaction t,

           v$rollstat r,

           v$rollname n,

           v$sql y,

           v$process z

   WHERE       s.paddr = p.addr

           AND s.taddr = t.addr(+)

           AND t.xidusn = r.usn(+)

           AND r.usn = n.usn(+)

           AND s.username IS NOT NULL

           AND s.sql_address = y.address

           AND s.paddr = z.addr

           AND z.spid = &pid

ORDER BY   s.sid,

           s.serial#,

           s.username,

           s.status;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值