如何在 PL/SQL 开发人员中查看实时 SQL 监控?

How to see real time SQL Monitor in PL/SQL developer?

在 Oracle SQL developer 中,我们有用于实时 SQL 监控的监控会话。同样如何在 PL/SQL 开发人员中查看?

您可以将它添加到会话浏览器中,该浏览器位于“工具”>“会话”中,图标如下:

您可以从菜单启动它,或将它添加到工具栏以便将来更容易访问。从你的截图来看它似乎不存在,所以添加它:

  1. 右击工具栏
  2. 选择"Customize"
  3. 在 "Toolbars" 选项卡下,确保 "Tools" 已启用(您的似乎是)
  4. 在 "Commands" 选项卡下,select "Tools",找到 "Sessions" 图标并将其拖动到工具栏。

“会话”屏幕包含一个主要-详细信息报告,其中主要面板(默认情况下)为 select * from v$session,并有几个变体可供过滤 "My sessions" 或 "Active sessions"。在我的设置中,我更改了这些以包含一些更有用的信息,将我想快速查看的内容放在顶部附近,等等。单击扳手图标以编辑查询。

默认详细信息选项卡包含一个 SQL 监控报告,该报告基于对当前会话的 v$sql_monitor 查询并显示 HTML 格式。

我更喜欢交互式版本,所以我将 HTML 更改为 ACTIVE。我也喜欢一眼就能看出当前正在执行的是哪一行SQL,所以我改成:

select m.status
     , m.sql_text
     , dbms_sqltune.report_sql_monitor
       ( sql_id => m.sql_id
       , sql_exec_id => m.sql_exec_id
       , type => 'ACTIVE'
       , report_level => 'ALL' ) as report
from   v$sql_monitor m
where  m.sid = :sid
and    m.session_serial# = :serial#
order by m.sql_exec_start desc

对于 RAC 环境,您可能希望将其更改为 gv$sql_monitor

(请注意 'Active' 报告在顶部包含一个 'Overview' 部分,您可以折叠该部分以提供更多 space 至 SQL 执行详细信息。)

完整演练 here,虽然它是几年前写的,所以指的是所有内容的早期版本,Windows XP 等。 (这是系列中的第二篇,所以也许您不妨从 plsqldeveloper-setup-1 开始。)

More details about DBMS_SQL_MONITOR.