2020年4月6日月曜日

デバッグ・レベルの完全トレースによるSQL実行計画の確認

Oracle APEX 20.1より、デフォルトのデバッグ・レベルを開発者ツール・バーから変更することが可能になっています。開発者ツール・バーの右端、設定のアイコンをクリックし、デフォルト・デバッグ・レベル完全トレースに設定します。Oracle APEXで実行されるSQLの実行計画を確認する、最も簡単な方法ではないかと思います。デバッグ・レベルを完全トレースまであげると、明らかに分かるほど処理が遅くなりますので、使いどころは注意が必要です。


デバッグ(完全トレース)をクリックして、デバッグを有効にします。

URLを確認すると、デバッグ指定の部分にLEVEL9が挿入されていることが確認できます。手作業でLEVEL9を指定しても、デバッグ・レベルを完全トレースまであげることは可能ですが、20.1からは明示的に指定する必要がなくなった、ということになります。
https://ホスト名/ベースURL/f?p=app_id:page_id:session_id::LEVEL9:::
完全トレースまでレベルが上がっていると、デバッグの表示から参照できるログに、SQLの実行計画を見つけることができます。

対話グリッドのような、実際のデータ取得をAjaxを使って、コンポーネントのロードと非同期に行うものはパス情報がshowではなく、ajaxとなっているログにSQLの実行に関する情報が出力されます。

残念なことに、20.1の新機能、簡易URL(Friendly URLs)が有効になっていると、デフォルト・デバッグ・レベルの変更が有効にならず、常に情報(デフォルト)になってしまっています。