如何在PL/SQL Developer中查看类似Oracle SQL Developer的实时SQL监控?
在PL/SQL Developer中实现实时SQL监控的方法
嘿,我来分享几个在PL/SQL Developer里实现类似Oracle SQL Developer实时SQL监控的实用方法,都是日常工作中常用的操作:
方法一:使用Session Browser(会话浏览器)
这是最直观的自带工具,能查看所有活跃会话的实时SQL:
- 打开PL/SQL Developer后,点击顶部菜单栏的「Tools」→「Session Browser」
- 在弹出的窗口里,你可以看到当前数据库的所有会话列表。选中某个你关注的会话,切换到「SQL」标签页,就能看到该会话正在执行的实时SQL语句
- 要是需要更深入的信息,比如执行计划、绑定变量值,切换到「Plan」或「Bind Variables」标签页就能看到
方法二:使用SQL Monitor工具
这个工具专门针对资源消耗较高的SQL做实时监控,需要Oracle 12c及以上版本,同时PL/SQL Developer版本支持该功能:
- 点击顶部菜单栏的「Tools」→「SQL Monitor」
- 这里会展示当前数据库中正在运行的高负载SQL,包含执行时长、CPU占用、IO读写等实时性能指标。点击具体的SQL条目,还能查看完整的执行计划和执行细节
方法三:手动查询系统视图(自定义监控)
如果需要更灵活的监控逻辑,可以直接查询Oracle的系统视图,在SQL窗口执行以下语句:
SELECT s.sid, s.serial#, s.username, s.status, TRIM(SUBSTR(sql.sql_text, 1, 200)) AS sql_text, sql.elapsed_time/1000000 AS elapsed_seconds, sql.cpu_time/1000000 AS cpu_seconds, sql.disk_reads FROM v$session s JOIN v$sql sql ON s.sql_id = sql.sql_id WHERE s.status = 'ACTIVE' AND s.username IS NOT NULL AND s.username != 'SYS'; -- 过滤系统用户,可根据需求调整
- 这个查询会列出所有活跃业务会话的实时SQL及关键性能指标,你可以根据自己的需求修改查询条件,比如只监控特定用户、特定SID的会话
注意事项
- 使用以上功能需要你的数据库用户拥有对应的权限,比如
SELECT ON v$session、SELECT ON v$sql,如果权限不足,联系DBA授权即可 - 如果你只是想监控自己当前执行的SQL,在SQL窗口执行语句后,点击工具栏的「Monitor」快捷按钮(部分版本可见),就能直接查看该SQL的实时执行状态
内容的提问来源于stack exchange,提问作者MOHAMMED SHEIK DAWOOD S J
相关产品推荐
相关产品推荐

