利用 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 1000000SET LONGCHUNKSIZE 1000000SET LINESIZE 1000SET PAGESIZE 0SET TRIM ONSET TRIMSPOOL ONSET ECHO OFFSET FEEDBACK OFFSELECT 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 包才能运行。