スキーマ:

ACCOUNT_USAGE

SEARCH_OPTIMIZATION_BENEFITS ビュー

このAccount Usageビューを使用して、 検索の最適化 による排除の効率性を判断できます。

このビューには TABLE_PRUNING_HISTORY ビュー ビューと同様に、排除に関する情報が表示されます。TABLE_PRUNING_HISTORY ビューには、検索の最適化による排除の情報ではなく、すべての排除に関する情報が表示されます。

このビューを使用して、テーブルに検索の最適化を追加する前と後の排除の効果を比較することができます。このビューにクエリを実行すると、検索最適化によって排除されたパーティションの数 (PARTITIONS_PRUNED_ADDITIONAL) と、排除されたパーティションの合計数 (PARTITIONS_PRUNED_DEFAULT + PARTITIONS_PRUNED_ADDITIONAL) が比較されます。

列名

データ型

説明

START_TIME

TIMESTAMP_LTZ

クエリが実行された時間範囲(時マーク)の開始時刻。

END_TIME

TIMESTAMP_LTZ

クエリが実行された時間範囲(時マーク)の終了時刻。

TABLE_ID

NUMBER

クエリされたテーブルの内部/システム生成識別子。

TABLE_NAME

TEXT

クエリされたテーブルの名前。

SCHEMA_ID

NUMBER

クエリされたテーブルを含むスキーマの内部/システム生成識別子。

SCHEMA_NAME

TEXT

クエリされたテーブルを含むスキーマの名前。

DATABASE_ID

NUMBER

クエリされたテーブルを含むデータベースの内部/システム生成識別子。

DATABASE_NAME

TEXT

クエリされたテーブルを含むデータベースの名前。

NUM_SCANS

NUMBER

検索最適化 による排除に使用された (そのテーブルの START_TIME から END_TIME の期間の全クエリからの)スキャン操作の数。クエリによっては、同じテーブルに対してスキャン操作が複数回行われる場合があります。

PARTITIONS_SCANNED

NUMBER

NUM_SCANS に記述されているスキャン処理中にスキャンされたパーティションの数。

PARTITIONS_PRUNED_DEFAULT

NUMBER

NUM_SCANS で記述されているスキャン処理中に、データのデフォルトの(自然な)並び替えの結果として排除されたパーティションの数。

PARTITIONS_PRUNED_ADDITIONAL

NUMBER

NUM_SCANS で記述されているスキャン処理中に、 検索最適化 の結果として排除されたパーティションの数。

使用上の注意

  • ビューの待機時間は最大6時間です。

過去7日間で検索最適化の恩恵を最も受けた上位5位までのテーブルを表示します。

SELECT
    table_id,
    ANY_VALUE(table_name) AS table_name,
    SUM(num_scans) AS total_num_scans,
    SUM(partitions_pruned_default) AS total_partitions_pruned_default,
    SUM(partitions_pruned_additional) AS total_partitions_pruned_additional,
    SUM(partitions_scanned) AS total_partitions_scanned
  FROM SNOWFLAKE.ACCOUNT_USAGE.SEARCH_OPTIMIZATION_BENEFITS
  WHERE start_time >= DATEADD(day, -7, CURRENT_TIMESTAMP())
  GROUP BY table_id
  ORDER BY
    total_partitions_pruned_additional / GREATEST(total_partitions_pruned_default + total_partitions_pruned_additional, 1) DESC,
    total_partitions_pruned_additional DESC
  LIMIT 5;
Copy

上の例では GREATEST を使用して、排除されたパーティションの数がゼロの場合にゼロ除算が起きることを防いでいます。