Snowflake Optima

Snowflake Optimaは、ワークロードの最適化にインテリジェントなアプローチを適用することで、パフォーマンスとシンプルさというSnowflakeの基本原則を拡張します。Snowflake Optimaは、手作業によるチューニングを必要とする代わりに、ワークロードのパターンを継続的に分析し、最も効果的な戦略を自動的に実装します。Snowflake Optimaは、設定やメンテナンスを追加することなく、クエリをより高速かつコスト効率よく実行します。SQL ワークロードの進化する性質を予測し適応することで、Snowflake Optimaは自動的にパフォーマンスを向上させます。

注釈

次の各セクションでは、Snowflake Optimaについて詳しく説明します。

Optima Indexing

Optima Indexing はSnowflake Optimaの機能で、ワークロードを自動的に分析し、バックグラウンドでインデックスを作成、維持します。Optima Indexingは、 検索最適化サービス の上に構築されています。

SQL ワークロードを継続的に監視することで、Optima Indexing は、テーブルに対する反復的なポイントルックアップクエリなど、パフォーマンス改善の機会を特定し、これらのワークロードを高速化するための隠しインデックスを自動的に生成します。これらのインデックスは、ユーザーの介入を必要とせず、ベストエフォートベースで構築され、維持されます。

Optima Indexingには追加コストは発生しません。また、Snowflakeに完全に統合されているため、パフォーマンス向上の恩恵を受けるための追加設定や手間も必要ありません。

たとえば、サイバーセキュリティ業界における脅威の検出など、保証されたパフォーマンスを必要とする特殊なワークロードに対しては、検索最適化を直接適用することができます。このオプションは、ほぼリアルタイムの結果が重要なシナリオにおいて、一貫したインデックスの鮮度を保ち、最終的に一貫したパフォーマンスを提供します。

Optima Metadata

Optima Metadata は、ユーザー入力を必要とせずにワークロードを自動的に最適化するSnowflake Optimaの機能です。Snowflake Optimaは、クエリパターンを分析し、プルーニングにおける列の非効率的使用を特定して、これらのクエリを最適化するために追加のメタデータを作成します。Snowflakeのクエリエンジンのニュアンスをすべて把握していない場合でも、Optimaはユーザーが未使用のマイクロパーティションを可能な限り効率的にプルーニングできるようにします。

例えば、Snowflake Optimaが最適化したシナリオの一つが、WHERE 句での UPPER 関数と LOWER 関数の使用状況である場合が考えられます。これらの関数は、プルーニングにおいて非効率的です。したがって、Snowflake Optimaがクエリフィルターの述語でこれらの関数が頻繁に使用されていることを検出した場合は、プルーニングを支援するためのメタデータを自動的に作成します。

一般に、ベストプラクティスは、非効率的なプルーニングにつながるシナリオを回避することです。ただし、Snowflake Optimaは、これらのシナリオが発生した場合にパフォーマンスを向上させることができます。つまり、既存のすべてのクエリパフォーマンスに関するベストプラクティスに引き続き従い、Optima Metadataは、ユーザーが見落とした可能性のある最適化を把握するためにバックグラウンドで動作する機能であると考える必要があります。

Snowflake Optimaの使用状況のモニタリング

Snowflake Optimaの使用状況は、 Snowsight にある Query HistoryQuery Profile タブ で監視できます。

QUERY_INSIGHTS ビュー をクエリして、Snowflake Optimaの使用状況をモニタリングすることもできます。クエリ分析情報の詳細については、クエリサイトを使用したパフォーマンスの向上 をご参照ください。

Query insightsペイン

クエリ分析情報 ペインには、クエリで検出された各分析情報のタイプが表示され、該当する分析情報タイプの各インスタンスがリストされます。

  • 検出された条件の詳細については、 :ui:`Query insights`ペインのエントリの横にある :ui:`View`を選択します。

指定されたクエリを最適化するためにSnowflake Optimaが使用された場合は、Snowflake Optima used が表示され、詳細が表示されます。

次の画像は、Snowflake Optimaが使用されたことを示す Query insights ペインの例です。

Query ProfileタブのQuery insightsペインの表示。

Statisticsペイン

Snowflake Optimaのプルーニング統計を表示するには、 Query Profile タブの Statistics ペインを開きます。Partitions pruned by Snowflake Optima と書かれた行を探します。この行は、クエリ実行中にスキップされたパーティション数を示しており、Snowflake Optimaがスキャンされたデータ量を削減することでいかにパフォーマンスを向上させたかを示しています。

次の画像は、Snowflake Optimaが使用されたことを示す Statistics ペインの例です。

Query ProfileタブのStatisticsペインの表示。