2021.12.28
特定の時間に実行されたSQLを確認
1. 概要
紹介する手順は、以下のような場面で活用することが出来ます。
- データベースサーバの負荷が高くなった時間に実行されていたSQLを確認したい
- アプリケーションが特定の時間に遅くなった、遅くなった時間に実行されたSQLを確認したい
- 表領域内で使用量が大きい表や索引を確認したい
2. 特定の時間に実行されたSQLを確認
2.1. 調査方法
1. [PERFORMANCE ANALYZER]画面に遷移します
[Realtime Monitor]画面の右上部[PERFORMANCE ANALYZER]ボタンをクリックして[Performance Analyzer]画面を表示します。
2. [容量計画][表領域] 画面に遷移します
- [Performance Analyzer]の画面左メニューから[推移分析]をクリック
- 画面上段メニューの[性能トレンド]をクリックします
3. 調査したい時間の指定
調査したい期間を指定して[検索]をクリックします
指定する期間は、調査対象のとなる期間より少し広い範囲で期間を指定してください。
例えば、調査対象の時間が 13:00 ~ 14:00 の場合、11:00~ 16:00 のように広い範囲で期間してください
指定した期間のグラフが表示されます、調査対象期間をグラフ上でドラック&ドロップをします
タイムスライスの窓が表示されます、[時間]に表示された期間を微調整、「推移分析を行う」のチェックボックスをONにして[OK]ボタンをクリックします
4. [性能トレンド]画面で調査
性能トレンド画面が表示されます、調査したい時間に実行されていたSQLを調査します
- データベースの性能指標をグラフなどで表示する領域
- SQLを実行していたアクティブセッションの一覧を表示
- 選択されている時間(④)の0秒~59秒間のアクティブセッション数をグラフで表示、グラフをクリックすることで②に表示するセッションの一覧表示が変わります
- 選択されている時間の表示、①領域にあるグラフをクリックすると時間を変更することができます
調査方法
- 画面上段もしくは、中段に表示されているグラフの調査したい時間をクリックします
- クリックした時間のアクティブセッションの一覧が表示されます、「SQL Text」列にセッションが実行中だったSQLが表示されます
- 画面下にある棒グラフ(秒単位のアクティブセッション数)をクリックして、1秒単位でアクティブセッションの一覧の表示を切り替えることができます。
- アクティブセッションの行で右クリック、メニューから「SQL全文」をクリックするとSQL文が別窓で表示されます
- 右クリックメニューの「SQL詳細」をクリックすると対象SQLの1日トレンド(1日分の実行状況のデータ)が別窓で表示されます
アクティブセッションリストの各カラムで並び変えることで「CPUの使用率が多いSQL」や「実行時間(Elapsed Time)が長いSQL」などを識別することが出来ます
アクティブセッション数が多い場合は、SQL処理の滞留が発生している可能性があります、上段グラフの待機クラスや待機イベントなどからDB全体のボトルネックとなっている箇所を確認して対処を検討します
SQL詳細で対象SQLの処理時間やデータブロックの読み取り状況を他の時間帯の平均値を確認することが出来ます、比較することでSQLが遅くなっているなどを確認することが出来ます