Snowsight による検索最適化のモニタリング

検索最適化サービスを有効にした後、 Snowsight を使用してクエリの使用状況に関する統計を監視できます。また、 Snowsight でも、クエリが検索最適化サービスを利用していない理由を特定することができます。

クエリに対する検索最適化の使用状況のモニタリング

クエリが検索最適化サービスを利用する場合、 クエリプロファイル には以下が含まれます。

  • Search Optimization Access ノード - クエリプランにある専用 Search Optimization Access ノード。このノードを選択すると、テーブルスキャン情報や検索最適化に特化した情報にアクセスできます。

  • Attributes ペイン - ノードのこのペインには以下が含まれます。

    • フルテーブル名 - 検索最適化を使用したクエリでスキャンされたテーブルを識別子。

    • 検索最適化の使用情報 - このセクションでは、クエリ実行中に検索最適化が参照した式 IDs をリストします。各式 ID は、テーブルに定義された検索メソッドと列ターゲットに対応しています。次のクエリを実行して、式 IDs と、それに対応するメソッドとターゲットを表示します。

      DESCRIBE SEARCH OPTIMIZATION ON <table_name>;
      
      Copy

      このコマンドの詳細情報については、 DESCRIBE SEARCH OPTIMIZATION をご参照ください。

  • Statistics pane - ノードのこのペインには、以下のメトリクスが含まれます。

    • Bytes scanned - テーブル・スキャンの実行中に読み取られたデータの総量。

    • Partitions scanned - 実際にスキャンされたマイクロパーティションの数。

    • Partitions total - テーブルのマイクロパーティションの総数。

    • Partitions pruned by search optimization - 検索最適化が対応するテーブルスキャンから効果的に除去したマイクロパーティションの数。

次の画像は、 Statistics ペインのメトリクスの例です。

検索最適化統計情報を含む検索最適化アクセスノードを表示します。

検索最適化が使われなかった理由の特定

テーブルに検索最適化が構成されていても、常に使用されるとは限りません。クエリに検索最適化が使用されていない場合は、 Attributes ペインの Table Scan ノードの Search Optimization Usage Info セクションを調べます。このセクションには、以下のいずれかの説明が表示されます。

  • 述語が不一致の場合、以下のメッセージが表示されます。

    Search optimization service was not used because no
    match was found between used predicates and the
    search access paths added for the table.
    

    このメッセージは、このテーブルのクエリで使用された述語が、テーブルに定義された検索メソッドと互換性がないことを示しています。以下のコマンドを実行すると、テーブルの最適化構成を確認できます。

    DESCRIBE SEARCH OPTIMIZATION ON <table_name>;
    
    Copy

    検索最適化でサポートされる述語とデータタイプの情報については、 検索最適化のメリットがあるクエリの特定 を参照してください。

  • 検索最適化を使用しないことをコストに基づいて決定した場合、以下のメッセージが表示されます。

    The query optimizer estimated that the search optimization
    service would not be beneficial for this table scan.
    

    このメッセージは、クエリで使用されている述語がテーブルに定義されている検索メソッドと互換性があるが、クエリオプティマイザーが検索最適化によってクエリのパフォーマンスが向上しない可能性が高いと判断したことを示しています。異なる述語やソース・テーブルの異なるデータを持つ後続のクエリは、検索最適化を使用するかもしれません。

  • 述語の制限を超えると、以下のメッセージが表示されます。

    Search optimization service was not used because the
    predicate limit was exceeded.
    

    このメッセージは、述語があまりにも多くの異なる述語を含んでいることを示しています。検索最適化述語の正確な数は述語のタイプに依存関係し、クエリ内の述語の数と正確に一致しない場合があります。 ワイルドカード構文を使用するサブストリングクエリ全文検索クエリ は、述語の制限に達する可能性が高くなります。

次の画像は、述語不一致メッセージの例です。

検索最適化を使用しない理由についてのメッセージとともに、検索最適化アクセスノードを表示します。