DBMS_SQLTUNE.REPORT_SQL_MONITORファンクションを利用することで、SQLの実行計画、パフォーマンスをHTML形式の見やすい形式で確認することが出来ます。
ただし、このSQLリアルタイム監視と言われている機能は「Diagnostics Pack + Tuning Pack」のライセンスを購入することで利用可能です。
[oracle@db01 ~]$ sqlplus / as sysdba
SQL> grant SELECT_CATALOG_ROLE to user1;
権限付与が成功しました。
リアルタイム監視機能を利用するためにユーザーにSELECT_CATALOG_ROLE権限を付与する必要があります。
SQL> select /* practiceSQL1 */ COL1 || ' : ' || COL2 "Record" from TBL1 where ROWNUM <= 3;
SQL> select * from table(dbms_xplan.display_cursor());
SQL_ID aq3tnz7v416zw, child number 0
監視対象となるSQLを実行し、そのSQLのSQL_IDを確認します。
set linesize 1000
set long 1000000
set longchunksize 1000000
spool sqlmon_active.html
select dbms_sqltune.report_sql_monitor(sql_id=>'aq3tnz7v416zw', type=>'active') from dual;
spool off
早速、SQLID指定でパッケージを実行し、HTMLレポートを出力します。

何にも表示されません。
それは実行したSQLの実行時間が5秒以下だったからです。
SQL> select /*+ MONITOR */ /* practiceSQL1 */ COL1 || ' : ' || COL2 "Record" from TBL1 where ROWNUM <= 3;
SQL> select * from table(dbms_xplan.display_cursor());
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
SQL_ID 8yc7k9fpjv3x7, child number 0
SQLを「/*+ MONITOR */」ヒント付きで実施
こうすることで5秒未満のSQLでもHTMLレポートが出力できます。

見やすいHTMLレポートが出力されました。
なお、このレポートを見る場合はインターネット接続が必須のようです。
ただし、このSQLリアルタイム監視と言われている機能は「Diagnostics Pack + Tuning Pack」のライセンスを購入することで利用可能です。
[oracle@db01 ~]$ sqlplus / as sysdba
SQL> grant SELECT_CATALOG_ROLE to user1;
権限付与が成功しました。
リアルタイム監視機能を利用するためにユーザーにSELECT_CATALOG_ROLE権限を付与する必要があります。
SQL> select /* practiceSQL1 */ COL1 || ' : ' || COL2 "Record" from TBL1 where ROWNUM <= 3;
SQL> select * from table(dbms_xplan.display_cursor());
SQL_ID aq3tnz7v416zw, child number 0
監視対象となるSQLを実行し、そのSQLのSQL_IDを確認します。
set linesize 1000
set long 1000000
set longchunksize 1000000
spool sqlmon_active.html
select dbms_sqltune.report_sql_monitor(sql_id=>'aq3tnz7v416zw', type=>'active') from dual;
spool off
早速、SQLID指定でパッケージを実行し、HTMLレポートを出力します。

何にも表示されません。
それは実行したSQLの実行時間が5秒以下だったからです。
SQL> select /*+ MONITOR */ /* practiceSQL1 */ COL1 || ' : ' || COL2 "Record" from TBL1 where ROWNUM <= 3;
SQL> select * from table(dbms_xplan.display_cursor());
PLAN_TABLE_OUTPUT
--------------------------------------------------------------------------------
SQL_ID 8yc7k9fpjv3x7, child number 0
SQLを「/*+ MONITOR */」ヒント付きで実施
こうすることで5秒未満のSQLでもHTMLレポートが出力できます。

見やすいHTMLレポートが出力されました。
なお、このレポートを見る場合はインターネット接続が必須のようです。

コメント