2021.12.08
SQLの実行状況を確認
1. 概要
紹介する手順は、以下のような場面で活用することが出来ます。
- SQLの過去の実行時間を確認したい
- SQLが読み取ったデータブロックの確認したい
- SQLの実行計画の変動、実行計画が変わったことにより実行時間が遅くなったか速くなったか確認したい
- SQLがどのくらい実行されているか確認したい
- SQLで発生した待機イベントを確認したい
発生している待機イベントを確認して、SQLのボトルネックを推測する。
実行計画を確認、非効率なオペレーションが発生していないか確認する(実行計画の知識と理解が必要です)。
2. SQLの実行状況を確認
2.1. 調査方法
1. [PERFORMANCE ANALYZER]画面に遷移します
[Realtime Monitor]画面の右上部[PERFORMANCE ANALYZER]ボタンをクリックして[Performance Analyzer]画面を表示します。
2. [SQL分析][長期分析] [1-SQL] 画面に遷移します
- [Performance Analyzer]の画面左メニューから[SQL分析]をクリック。
- 画面上段メニューの[長期分析]をクリックします。
- [1-SQL] のタブをクリックします。
3. 特定の条件で検索
[1-SQL]画面より確認したいSQLを検索します。
調査対象のSQLの「SQL ID」を入力して、インスタンス、調査の対象となる期間を設定、[検索] します。
4. 検索結果
検索条件を入力して[検索]ボタンをクリックすると検索結果が表示されます。
過去からの推移で傾向を確認する、「実行時間」や「読取ブロック数」が大きく変化していないかなどを確認。
→ 大きく変化している場合、性能が劣化している可能性が考えられる。
実行計画が複数ある場合、実行計画により「実行時間」「読取ブロック数」が変化しているか確認。
→ 大きく変化している場合、効率の悪い実行計画をORACLEが選択している可能性がある。
変化が発生している場合、対象日の棒グラフをクリックすると対象の日のSQL実行状況が表示されます。
5. 日別のSQL詳細情報
[1-SQL]で表示された棒グラフをクリックすると対象日のSQL詳細が表示されます。
SQL詳細は、対象SQLの「1日の実行統計を1時間単位のグラフ」、「SQL実行統計値」、「SQLで発生した待機イベント」などが表示されます。