Oracle:查询当前正在等待执行的SQL语句

在Oracle数据库中,要查询当前正在等待执行的SQL语句,可以通过查询动态性能视图(Dynamic Performance Views)来实现。以下是几种常用的方法:

  1. 查询正在等待的会话及其SQL语句

通过VSESSION和VSQL视图关联查询,可以获取正在等待的会话及其执行的SQL信息‌:

SELECT s.sid, s.serial#, s.username, s.status, s.sql_id, s.prev_sql_id, q.sql_text, s.program, s.machine, s.logon_time

FROM v$session s

LEFT JOIN v$sql q ON s.sql_id = q.sql_id

WHERE s.status = 'INACTIVE' -- 筛选非活跃会话(即正在等待的会话)

AND s.type != 'BACKGROUND' -- 排除后台进程

AND s.sql_id IS NOT NULL;

  1. 查看长时间等待的会话

使用V$SESSION_WAIT视图可以查看会话的等待事件信息,帮助定位资源争用问题‌4:

SELECT sid, serial#, event, wait_time, state, wait_class

FROM v$session_wait

WHERE wait_time > 0 -- 仅显示有等待时间的会话

ORDER BY wait_time DESC;

  1. 查询当前用户正在等待的SQL

如果只想查看当前用户正在等待的SQL语句,可以使用以下查询‌:

SELECT a.sid, a.serial#, a.paddr, a.machine, nvl(a.sql_id, a.prev_sql_id) sql_id, b.sql_text

FROM vsession a, vsql b

WHERE a.username = sys_context('USERENV', 'CURRENT_USER')

AND a.status = 'INACTIVE'

AND nvl(a.sql_id, a.prev_sql_id) = b.sql_id;

  1. 查看等待事件类别汇总

通过V$SESSION_WAIT_CLASS视图可以查看会话在各个等待类别上的总等待时间,帮助快速定位主要资源等待类型‌:

SELECT sid, wait_class, time_waited

FROM v$session_wait_class

WHERE time_waited > 0

ORDER BY time_waited DESC;

关键字段说明

‌SID‌:会话标识符。

‌SERIAL#‌:会话序列号,与SID一起用于唯一标识一个会话。

‌SQL_ID‌:正在执行的SQL语句的唯一标识。

‌SQL_TEXT‌:SQL文本内容(可能被截断,完整内容需从V$SQLAREA获取)。

‌EVENT‌:会话当前正在等待的资源或事件名称(如"db file sequential read"、"buffer busy waits"等)‌。

相关推荐
Warren9811 分钟前
MySQL 8 中的保留关键字陷阱:当表名“lead”引发 SQL 语法错误
linux·数据库·python·sql·mysql·django·virtualenv
thekenofdis12 分钟前
MongoDB 自动删除集合中过期的数据
数据库·mongodb
Hard but lovely12 分钟前
linux: pthread库---posix线程创建使用接口&&状态
linux·开发语言·c++
柏木乃一13 分钟前
进程(7)命令行参数与环境变量
linux·服务器·shell·环境变量·鸣潮
Hqst_xiangxuajun13 分钟前
万兆SFP光纤笼子交换机和PCIE网卡主板上起到什么作用
网络·fpga开发·oracle·sqlite·json·信息与通信
消失的旧时光-194313 分钟前
从 JVM 到 Linux:一次真正的系统级理解
android·linux·jvm
会飞的小新14 分钟前
Linux 基础命令速成手册(附详细示例)
linux·运维·服务器
老邓计算机毕设15 分钟前
SSM校园扶助综合服务平台的设计与实现r941j(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·校园信息化·ssm 校园扶助平台
好记忆不如烂笔头abc16 分钟前
ubuntu20.04桌面允许root用户登录
服务器·数据库·postgresql
————A17 分钟前
从 RAG 走不通开始:设备运维场景下的一次诊断系统重构思考
大数据·数据库·人工智能