19(以下OB)が11/21にリリースされます。19cの新機能である「開発者用リアルタイムSQLモニタリング」をご紹介します。開発者用リアルタイムSQLモニタリングとはリアルタイムSQLモニタとは、データベース内でどのようなSQL文が実行されているのかを監視する機能です。熱心なOBユーザーの中には既存機能である「SQLキャッチ」を思い浮かべた方もいるかと思います。実行されたSQLを取得し、インデックスの追加やボトルネックとなっているSQL文の構文見直しの作業を支援するという点で類似した機能となりますが、使用するための権限が低いことやトレースファイルが必要ない点などの違いがあり、よりお手軽感があります。その他の違いは下記の表をご覧ください。OBでためそうでは早速OBで実行してみましょう。下記の単純なSQLを実行してみます。簡単なSQLは上記SQLキャッチとの違いで示したように監視対象とならない場合があります。今回はお試しということで、必ず収集されるようにSQLに一部手を加えます。*/」をヒント句として記述することで、強制的に収集されるようになるのでこれを利用しましょう。アイコンをクリックすると、SQLキャッチとよく似た画面が展開されます。上段に先ほど実行された5つのSQLが表示されているのがわかります。下段には上段で選択したSQLの実行計画を表示することができます。右クリックメニューからインデックスアドバイザを呼び出せます。実行計画を閲覧後、インデックスアドバイザ画面で適切なインデックスをつけてSQLの速度を改善する、などの運用が想定されます。その他の右クリックメニューの詳細は以下のとおりです。文をクリップボードにコピーします。インデックスアドバイザを開くインデックスアドバイザ画面を開きます。文のレポートをHTML形式で出力します。右クリックメニューまた、フィルタボタンで下記画面を呼び出せます。こちらでは、指定したユーザーで絞り込んだり、高コストのSQLトップ10だけ表示したりと、いろいろなフィルタをかけることが可能です。SQLを直接検索することも可能です。まとめいかがでしたか。開発者用リアルタイムSQLモニタリングは、SQLキャッチのように事前準備や高権限のユーザーを用意する必要がないため、だれでも簡単に実行SQLを取得することができます。いう名前が示すように低コストのSQLが通常はスルーされたり、取得データに揮発性があったりと、長期の運用には向かない点もあります。それでもそのお手軽さは大きなメリットであり、開発中の利用であればその効果を十二分に発揮することでしょう。様々な場面を想定し、SQLキャッチと上手に使い分けをしていきましょう。