SQL分析
この文書は、OracleモニタリングV2を基準に作成されました。 OracleモニタリングV1文書については、次の文書を参照してください。
ホーム画面 > プロジェクト選択 > 分析 > SQL分析
データベースで実行されるSQL文を分析し、性能問題を診断するのに有用な資料を提供します。 SQL分析メニューは、2つの主要なタブで構成されています。
-
Access Statistics: 性能低下の原因となり得るFull Scanが発生したSQLを確認できます。
-
Plan Change History: 同一のSQL IDを持つSQL文がオプティマイザによって他の実行プランに変更された場合を感知します。 これは性能に影響を与える可能性があるため、モニタリングが必要です。
Access Statistics
性能低下の原因となり得るFull Scanが発生したSQLを確認できます。 時間別、タイプ別のFull Scan発生回数を確認できます。 これにより、Full Scanを頻繁に発生させるSQL文を最適化し、不要なFull Scanを減らすことで資源使用量を最適化できます。 また、Full ScanをIndex Scanに置き換えてクエリー性能を向上させる方法を考えてみてください。
画面上で照会時間と対象を選択してください。 時間とインスタンスオプションを設定した後ボタンを選択してください。 必要な場合、フィルターオプションを設定して、目的の照会結果をフィルタリングできます。
-
Access Count: 時間帯別のFull Scanの発生回数を確認できる棒グラフチャートです。 特定の時間帯を選択すると、選択した時間に実行されたSQLリストが画面の下のリストと右のOperation Count チャートに表示されます。
-
Operation Count: Full Scanが発生したタイプとその数を確認できます。 各バーにマウスオーバーすると、オブジェクト名を確認できます。
クエリの詳細を見る
画面の下のSQL一覧でqueryカラム項目を選択するとSQL詳細画面が表示されます。 SQLクエリ文とPlan情報を確認することができます。
- SQL統計の表示: 該当SQLクエリ文に関する統計情報が確認できるSQL統計メニューへ移動できます。
-
Runtime Plan: 選択されたSQLクエリの実行計画とランタイム情報を提供します。 実行回数、平均実行時間、平均物理的読み取りなどの詳細を提供します。
-
Explain Plan: オプティマイザーが予測した実行計画を示します。 費用、作業、オブジェクト名、カーディナリティなどの情報を提供します。
-
Plan History: データベースで実行されたSQLクエリの実行計画に対する履歴を確認できます。
-
Bind Capture: データベースで実行されたSQLクエリに使用されたバインド変数の値を確認できます。 これにより、クエリ実行の実際の内容を確認できます。
ノートリアルタイムで実行されたbind値ではなく、データベースにキャプチャされた値(
v$sql_bind_capture
)です。 件数が多いと、100個まで表示します。
参照結果フィルタリング
照会したSQLリストでフィルターオプションを通じてFull ScanまたはIndex Scan基準で結果をフィルタリングできます。
-
フィルターオプションを選択してください。
-
フィルターの修正でFULLまたはINDEX項目を選択してください。
-
適用ボタンを選択します。
-
選択した条件をSQLリストに反映するには、ボタンを選択してください。
Full Scan、Index Scanをすべて検索するには、フィルターの修正でFULL、INDEXオプションをすべて選択してください。 またはボタンを選択してフィルターオプションを追加できます。
Plan Change History
同一のSQL IDを持つSQL文がオプティマイザによって他の実行プランに変更された場合を感知します。 これは性能に影響を与える可能性があるため、モニタリングが必要です。 プラン変更による性能変化を感知して対応し、不要なプラン変更を識別してSQL性能の一貫性を維持できます。
画面上で照会時間と対象を選択してください。 時間とインスタンスオプションを設定した後ボタンを選択してください。
Plan Change Countセクションは、時間帯別のプラン変更が起きた回数を確認できる棒グラフチャートです。 特定の時間帯を選択すると、選択した時間のプラン変更の一覧を表示します。
Plan変更事項を確認する
画面下部の一覧で特定の変更項目を選択すると、画面下にプラン変更前後の詳細が確認できるQueryセクションが表示されます。 プラン変更前後の相違点を詳細に比較することにより、どの変更が性能に影響したかを把握できます。
-
Queryセクションで右上のボタンを選択すると、そのセクションを新しいウィンドウに開いて確認できます。
-
Queryセクションを閉じるには、右上のボタンを選択します。
参照結果フィルタリング
フィルター条件を追加する
照会された結果で次の項目の値に基づいて、希望する結果をフィルタリングできます。
-
sql_id
-
sql_hash_value
-
after_plan_hash_value
-
before_plan_hash_value
-
フィルターオプションでボタンを選択します。
-
フィルターキー項目で目的のフィルタリング基準を選択します。
-
選択した項目の値が文字に該当する場合は含む(青)、含まない(赤) の条件を選択できます。
-
選択した項目の値が数字に該当する場合は
==
(等しい),>=
(より大きいか等しい),<=
(より小さいか等しい) 条件を選択できます。
-
-
条件項目で条件を選択します。
-
条件に一致する文字列または数字を入力してください。
-
適用ボタンを選択します。
-
フィルタリング条件を追加するには、追加ボタンを選択し、1 ~ 5の手順を繰り返します。 追加した条件は、AND(
&&
) 条件として適用されます。 -
条件を追加する時に一部の項目を削除するには、フィルター条件の右側のボタンを選択します。 全体の条件を削除するには、 完全削除ボタンを選択します。
-
フィルターオプションに適用された条件をすばやく削除するには、ボタンを選択します。
フィルター条件を修正する
フィルターオプションに適用されている項目をクリックします。 フィルターの修正画面が表示されたら、必要な項目を修正し適用ボタンを選択します。