クエリパフォーマンスの最適化

以下の方法でSnowflakeクエリのパフォーマンスを最適化できます。

  • 検索最適化サービス

  • クエリアクセラレーション

  • 1つ以上のマテリアライズドビュー(クラスター化または非クラスター化)を作成します。

  • テーブルのクラスタリング

次のテーブルに示すように、これらの最適化手法にはそれぞれ異なる利点があります。

機能

サポートされているクエリ型

メモ

検索最適化サービス

検索最適化サービスは、 サポートされているデータ型 のこれらの型を検索するパフォーマンスを向上させることができます。

Query acceleration service

フィルターまたは集計のあるクエリ。クエリに LIMIT が含まれる場合、クエリには ORDER BY も含まれる必要があります。
フィルターは高度に選択的である必要があり、 ORDER BY 句のカーディナリティは低くする必要があります。

クエリアクセラレーションは、アドホック分析、予測不可能なデータ量のクエリ、
また、大規模なスキャンと選択的フィルターを使用したクエリとの作業に適しています。

クエリアクセラレーションと検索最適化は補完的です。どちらも同じクエリを高速化できます。クエリアクセラレーションとの互換性 をご参照ください。

Materialized views

  • 等価検索。

  • 範囲検索。

  • 並べ替え操作。

マテリアライズドビューを使用して、同じソーステーブルまたはそのテーブルのサブセットに異なるクラスタリングキーを定義するか、フラット化されたJSONまたはVARIANTデータを格納して、フラット化が1回だけで済むようにすることもできます。

マテリアライズドビューは、マテリアライズドビューに含まれる行と列のサブセットのみのパフォーマンスを向上させます。

テーブルのクラスタリング

  • 等価検索。

  • 範囲検索。

テーブルは、1つ以上の列または式を含むことができる単一のキーでのみクラスター化できます。

次の表は、これらの最適化のうちどれがストレージまたはコンピューティングコストを持つかを示しています。

最適化

ストレージコスト

コンピューティングコスト

検索最適化サービス

Query acceleration service

マテリアライズドビュー

テーブルのクラスタリング

[1]

クエリアクセラレーションとの互換性

検索最適化と クエリアクセラレーション 併用して、クエリのパフォーマンスを最適化できます。まず、検索最適化により、クエリに不要な マイクロパーティション を削除できます。次に、 対象となるクエリ については、クエリアクセラレーションによって残りの作業の一部をサービスが提供する共有コンピューティングリソースにオフロードできます。

両方のサービスによって高速化されるクエリのパフォーマンスは、ワークロードと利用可能なリソースによって異なります。