本文へスキップ

SQL分析

ホーム画面 > プロジェクト選択 > 分析 > 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に置き換えてクエリー性能を向上させる方法を考えてみてください。

AccessStatistics

画面上で照会時間と対象を選択してください。 時間インスタンスオプションを設定した後検索アイコンボタンを選択してください。 必要な場合、フィルターオプションを設定して、目的の照会結果をフィルタリングできます。

  • Access Count: 時間帯別のFull Scanの発生回数を確認できる棒グラフチャートです。 特定の時間帯を選択すると、選択した時間に実行されたSQLリストが画面の下のリストと右のOperation Count チャートに表示されます。

  • Operation Count: Full Scanが発生したタイプとその数を確認できます。 各バーにマウスオーバーすると、オブジェクト名を確認できます。

    Operation Count

ノート

時間オプションの利用方法の詳細については、次の文書を参照してください。

クエリの詳細を見る

画面の下のSQL一覧でqueryカラム項目を選択するとSQL詳細画面が表示されます。 SQLクエリ文とPlan情報を確認することができます。

SQL統計

  • SQL統計の表示: 該当SQLクエリ文に関する統計情報が確認できるSQL統計メニューへ移動できます。
  • Runtime Plan: 選択されたSQLクエリの実行計画とランタイム情報を提供します。 実行回数、平均実行時間、平均物理的読み取りなどの詳細を提供します。

  • Explain Plan: オプティマイザーが予測した実行計画を示します。 費用、作業、オブジェクト名、カーディナリティなどの情報を提供します。

  • Plan History: データベースで実行されたSQLクエリの実行計画に対する履歴を確認できます。

  • Bind Capture: データベースで実行されたSQLクエリに使用されたバインド変数の値を確認できます。 これにより、クエリ実行の実際の内容を確認できます。

    ノート

    リアルタイムで実行されたbind値ではなく、データベースにキャプチャされた値(v$sql_bind_capture)です。 件数が多いと、100個まで表示します。

参照結果フィルタリング

照会された結果で次の項目の値に基づいて、希望する結果をフィルタリングできます。

情報
  • Access Type: Full ScanまたはIndex Scanに基づいて結果をフィルタリングできます。

  • Object Name: オブジェクト名に基づいてフィルタリングできます。

Access Typeフィルター条件を追加する

  1. フィルターオプションを選択してください。

    フィルター

  2. フィルターの修正FULLまたはINDEX項目を選択してください。

  3. 適用ボタンを選択します。

  4. 選択した条件をSQLリストに反映するには、検索アイコンボタンを選択してください。

ノート

Full Scan、Index Scanをすべて検索するには、フィルターの修正FULLINDEXオプションをすべて選択してください。 またはプラスアイコンボタンを選択してフィルターオプションを追加できます。

Object Nameフィルター条件を追加する

フィルター

  1. フィルターオプションでボタンを選択します。

  2. フィルタの追加ポップアップでObject Name項目と一致条件を選択します。

  3. 空の入力欄を選択し、表示されるオブジェクトの一覧から目的のオブジェクト名を選択します。

  4. 適用ボタンを選択します。

  5. 選択した条件をSQLリストに反映するには、検索アイコンボタンを選択してください。

ノート
  • フィルタリング条件を追加するには、追加ボタンを選択し、1 ~ 5の手順を繰り返します。 追加した条件は、AND(&&) 条件として適用されます。

  • 条件を追加する時に一部の項目を削除するには、フィルター条件の右側の削除アイコンボタンを選択します。 全体の条件を削除するには、削除アイコン 完全削除ボタンを選択します。

  • フィルターオプションに適用された条件をすばやく削除するには、ボタンを選択します。

フィルター条件を修正する

フィルターの修正

フィルターオプションに適用されている項目をクリックします。 フィルターの修正画面が表示されたら、必要な項目を修正し適用ボタンを選択します。

Plan Change History

同一のSQL IDを持つSQL文がオプティマイザによって他の実行プランに変更された場合を感知します。 これは性能に影響を与える可能性があるため、モニタリングが必要です。 プラン変更による性能変化を感知して対応し、不要なプラン変更を識別してSQL性能の一貫性を維持できます。

Plan Change History

画面上で照会時間と対象を選択してください。 時間インスタンスオプションを設定した後検索アイコンボタンを選択してください。

Plan Change Countセクションは、時間帯別のプラン変更が起きた回数を確認できる棒グラフチャートです。 特定の時間帯を選択すると、選択した時間のプラン変更の一覧を表示します。

ノート

時間オプションの利用方法の詳細については、次の文書を参照してください。

Plan変更事項を確認する

画面下部の一覧で特定の変更項目を選択すると、画面下にプラン変更前後の詳細が確認できるQueryセクションが表示されます。 プラン変更前後の相違点を詳細に比較することにより、どの変更が性能に影響したかを把握できます。

Plan Change History

  • Queryセクションで右上の新しいウィンドウのアイコンボタンを選択すると、そのセクションを新しいウィンドウに開いて確認できます。

  • Queryセクションを閉じるには、右上の閉じるアイコンボタンを選択します。

参照結果フィルタリング

フィルター条件を追加する

照会された結果で次の項目の値に基づいて、希望する結果をフィルタリングできます。

情報
  • sql_id

  • sql_hash_value

  • after_plan_hash_value

  • before_plan_hash_value

  1. フィルターオプションでボタンを選択します。

    条件を追加する

  2. フィルターキー項目で目的のフィルタリング基準を選択します。

    • 選択した項目の値が文字に該当する場合は含む(青)、含まない(赤) の条件を選択できます。

      example

    • 選択した項目の値が数字に該当する場合は==(等しい), >=(より大きいか等しい), <=(より小さいか等しい) 条件を選択できます。

  3. 条件項目で条件を選択します。

  4. 条件に一致する文字列または数字を入力してください。

  5. 適用ボタンを選択します。

ノート
  • フィルタリング条件を追加するには、追加ボタンを選択し、1 ~ 5の手順を繰り返します。 追加した条件は、AND(&&) 条件として適用されます。

  • 条件を追加する時に一部の項目を削除するには、フィルター条件の右側の削除アイコンボタンを選択します。 全体の条件を削除するには、削除アイコン 完全削除ボタンを選択します。

  • フィルターオプションに適用された条件をすばやく削除するには、ボタンを選択します。

フィルター条件を修正する

フィルターの修正

フィルターオプションに適用されている項目をクリックします。 フィルターの修正画面が表示されたら、必要な項目を修正し適用ボタンを選択します。