この資料について
Oracle Database 19cには、リアルタイムSQL監視の機能がある。
リアルタイムSQL監視を有効にする方法を記載する
モニターの適用条件
公式ドキュメントより抜粋
単純データベース操作
単一のSQL文、あるいは単一のPL/SQLサブプログラムはシンプル・データベースの操作です。SQL監視機能が有効な場合は、次のいずれかの条件が満たされるときに、データベースは単純データベース操作を自動的に監視します。
- SQL文やPL/SQLのサブプログラムが、CPUまたはI/O時間を1回の実行で5秒以上消費した
- SQL文がパラレルで実行される
- SQL文で/*+ MONITOR */ヒントを指定している
- イベントsql_monitorで監視対象の文のSQL IDのリストを指定している
- たとえば、次の文では、SQL ID 5hc07qvt8v737と9ht3ba3arrzt3に対してインスタンス・レベルの監視を強制しています
結論:ヒント区が安定
- /*+ MONITOR */ヒントを一時的に設定することでクエリをキャプチャすることが可能
SQLレポートの出力方法
公式ドキュメントより抜粋
SET FEEDBACK OFF
SET TERMOUT OFF
SET TRIMSPOOL ON
SET TRIM ON
SET PAGES 0
SET LINESIZE 1000
SET LONG 1000000
SET LONGCHUNKSIZE 1000000
SPOOL /tmp/long_sql.htm
SELECT DBMS_SQL_MONITOR.REPORT_SQL_MONITOR(
report_level => 'ALL',
TYPE => 'active')
FROM DUAL;
SPOOL OFF