ワークロードが動的テーブルのパフォーマンスに与える影響

パイプラインのワークロードを最適化することで、コストを削減し、一般的なパフォーマンスを向上させることができます。Snowflakeでは、ワークロードの調整から最適化を開始することを推奨しています。これは、動的テーブルリフレッシュのパフォーマンスを向上させる最も効果的な方法だからです。

クエリ

動的テーブルのクエリをよく見て、次のようなワークロードを軽減する方法を探してください:

  • フィルターを追加してスキャンするデータ量を削減する

  • パイプラインの早い段階で重複を排除し、 DISTINCT の使用を回避します。

  • NULL の使用を減らし、ソースデータの参照整合性を確保することで、外部結合を内部結合に置き換えることができます。

  • 読み込まれる頻度の低い大きな列のマテリアライズは避けてください。

局所性

テーブル内のデータのレイアウトを考慮してください。優れたパフォーマンスを得るためには、クエリがアクセスするデータが近接している必要があります。これは 局所性 として知られています。

例えば、特定の列で行を効率的に検索する必要がある場合、テーブルはその列で クラスタリング される必要があります。テーブルの局所性はクエリの構造に合わせて、 JOINGROUP BYPARTITION BY キーでクラスタリングするのが理想的です(可能な場合)。クラスタリングを利用するには、クラスタリングキーのシーケンスは、パーティショニングキーのシーケンスと共通のプレフィックスを共有する必要があります。

局所性の最適化にはトレードオフが伴います。多くの列の局所性を同時に最適化するのは難しいため、最高のパフォーマンスを得るためには、最も影響力のある列に注力します。詳細については、 Snowflakeテーブル構造について をご参照ください。