利用 SQL Monitor 查看语句运行状态步骤

时间:2022-06-20 16:21:49

利用 SQL Monitor 查看语句运行状态步骤

1.确定语句被 SQL Monitor 监控
SQL> SELECT *
FROM GV$SQL_MONITOR
WHERE sql_id='sql_id';
其中,sql_id 为待查看的 SQL 号。
注意:对于执行时长较短的 SQL 语句(5 秒以内),将无法被 SQL Monitor 捕获。此时,可通过在语句中加入 /*+ monitor */ HINT 的方式强制捕获该 SQL。
2.通过 SQL Monitor 查看语句运行状态
a.PL/SQL Developer 环境下
对于 PL/SQL Developer 环境下,可以直接运行语句
SQL> SELECT DBMS_SQLTUNE.report_sql_monitor(
  sql_id       => 'sql_id',
  type         => 'report_type',
  report_level => 'ALL')
FROM dual;
其中,sql_id 为待查看的 SQL 号;report_type 为 SQL Monitor 报告类型,有 TEXT、HTML、ACTIVE 三种类型,注意 ACTIVE 需要到 Oracle 官网下载相应的 js 包才能运行。
b.SQLPLUS 环境下
对于 SQLPLUS 环境下,运行如下语句
SQL> SET LONG 1000000
SET LONGCHUNKSIZE 1000000
SET LINESIZE 1000
SET PAGESIZE 0
SET TRIM ON
SET TRIMSPOOL ON
SET ECHO OFF
SET FEEDBACK OFF
SELECT DBMS_SQLTUNE.report_sql_monitor(
  sql_id       => 'sql_id',
  type         => 'report_type',
  report_level => 'ALL')
FROM dual;
其中,sql_id 为待查看的 SQL 号;report_type 为 SQL Monitor 报告类型,有 TEXT、HTML、ACTIVE 三种类型,注意 ACTIVE 需要到 Oracle 官网下载相应的 js 包才能运行。