クエリパフォーマンスの最適化¶
以下の方法でSnowflakeクエリのパフォーマンスを最適化できます。
検索最適化サービス
クエリアクセラレーション
1つ以上のマテリアライズドビュー(クラスター化または非クラスター化)を作成します。
テーブルのクラスタリング
次のテーブルに示すように、これらの最適化手法にはそれぞれ異なる利点があります。
機能 |
サポートされているクエリ型 |
メモ |
|---|---|---|
|
検索最適化サービスは、 サポートされているデータ型 のこれらの型を検索するパフォーマンスを向上させることができます。 |
||
フィルターまたは集計のあるクエリ。クエリに LIMIT が含まれる場合、クエリには ORDER BY も含まれる必要があります。
フィルターは高度に選択的である必要があり、 ORDER BY 句のカーディナリティは低くする必要があります。
クエリアクセラレーションは、アドホック分析、予測不可能なデータ量のクエリ、
また、大規模なスキャンと選択的フィルターを使用したクエリとの作業に適しています。
|
クエリアクセラレーションと検索最適化は補完的です。どちらも同じクエリを高速化できます。クエリアクセラレーションとの互換性 をご参照ください。 |
|
|
マテリアライズドビューを使用して、同じソーステーブルまたはそのテーブルのサブセットに異なるクラスタリングキーを定義するか、フラット化されたJSONまたはVARIANTデータを格納して、フラット化が1回だけで済むようにすることもできます。 マテリアライズドビューは、マテリアライズドビューに含まれる行と列のサブセットのみのパフォーマンスを向上させます。 |
|
|
テーブルは、1つ以上の列または式を含むことができる単一のキーでのみクラスター化できます。 |
次の表は、これらの最適化のうちどれがストレージまたはコンピューティングコストを持つかを示しています。
最適化 |
ストレージコスト |
コンピューティングコスト |
|---|---|---|
検索最適化サービス |
✔ |
✔ |
Query acceleration service |
✔ |
|
マテリアライズドビュー |
✔ |
✔ |
テーブルのクラスタリング |
✔ [1] |
✔ |
クエリアクセラレーションとの互換性¶
検索最適化と クエリアクセラレーション 併用して、クエリのパフォーマンスを最適化できます。まず、検索最適化により、クエリに不要な マイクロパーティション を削除できます。次に、 対象となるクエリ については、クエリアクセラレーションによって残りの作業の一部をサービスが提供する共有コンピューティングリソースにオフロードできます。
両方のサービスによって高速化されるクエリのパフォーマンスは、ワークロードと利用可能なリソースによって異なります。