Snowsight による検索最適化のモニタリング¶
検索最適化サービスを有効にした後、 Snowsight を使用してクエリの使用状況に関する統計を監視できます。また、 Snowsight でも、クエリが検索最適化サービスを利用していない理由を特定することができます。
クエリに対する検索最適化の使用状況のモニタリング¶
クエリが検索最適化サービスを利用する場合、 クエリプロファイル には以下が含まれます。
Search Optimization Access ノード - クエリプランにある専用 Search Optimization Access ノード。このノードを選択すると、テーブルスキャン情報や検索最適化に特化した情報にアクセスできます。
Attributes ペイン - ノードのこのペインには以下が含まれます。
フルテーブル名 - 検索最適化を使用したクエリでスキャンされたテーブルを識別子。
検索最適化の使用情報 - このセクションでは、クエリ実行中に検索最適化が参照した式 IDs をリストします。各式 ID は、テーブルに定義された検索メソッドと列ターゲットに対応しています。次のクエリを実行して、式 IDs と、それに対応するメソッドとターゲットを表示します。
このコマンドの詳細情報については、 DESCRIBE SEARCH OPTIMIZATION をご参照ください。
Statistics pane - ノードのこのペインには、以下のメトリクスが含まれます。
Bytes scanned - テーブル・スキャンの実行中に読み取られたデータの総量。
Partitions scanned - 実際にスキャンされたマイクロパーティションの数。
Partitions total - テーブルのマイクロパーティションの総数。
Partitions pruned by search optimization - 検索最適化が対応するテーブルスキャンから効果的に除去したマイクロパーティションの数。
次の画像は、 Statistics ペインのメトリクスの例です。
検索最適化が使われなかった理由の特定¶
テーブルに検索最適化が構成されていても、常に使用されるとは限りません。クエリに検索最適化が使用されていない場合は、 Attributes ペインの Table Scan ノードの Search Optimization Usage Info セクションを調べます。このセクションには、以下のいずれかの説明が表示されます。
述語が不一致の場合、以下のメッセージが表示されます。
このメッセージは、このテーブルのクエリで使用された述語が、テーブルに定義された検索メソッドと互換性がないことを示しています。以下のコマンドを実行すると、テーブルの最適化構成を確認できます。
検索最適化でサポートされる述語とデータタイプの情報については、 検索最適化のメリットがあるクエリの特定 を参照してください。
検索最適化を使用しないことをコストに基づいて決定した場合、以下のメッセージが表示されます。
このメッセージは、クエリで使用されている述語がテーブルに定義されている検索メソッドと互換性があるが、クエリオプティマイザーが検索最適化によってクエリのパフォーマンスが向上しない可能性が高いと判断したことを示しています。異なる述語やソース・テーブルの異なるデータを持つ後続のクエリは、検索最適化を使用するかもしれません。
述語の制限を超えると、以下のメッセージが表示されます。
このメッセージは、述語があまりにも多くの異なる述語を含んでいることを示しています。検索最適化述語の正確な数は述語のタイプに依存関係し、クエリ内の述語の数と正確に一致しない場合があります。 ワイルドカード構文を使用するサブストリングクエリ や 全文検索クエリ は、述語の制限に達する可能性が高くなります。
次の画像は、述語不一致メッセージの例です。