スキーマ:

ACCOUNT_USAGE

COLUMN_QUERY_PRUNING_HISTORY ビュー

このアカウント使用状況ビューを使用して、クエリ実行中のデータアクセスパターンをよりよく理解します。これには「アクセスタイプ」や 潜在的に有益な候補 検索最適化式 などの列レベルの詳細が含まれます。

このビューは TABLE_QUERY_PRUNING_HISTORY ビュー と組み合わせて使用​​できます。たとえば、TABLE_QUERY_PRUNING_HISTORY ビューを使用してターゲットテーブルへのアクセスを特定し、COLUMN_QUERY_PRUNING_HISTORY ビューを使用してそれらのテーブルで頻繁に使用される列を特定できます。

このビューの各行は、指定された時間間隔内の特定の列のクエリプルーニング履歴を表します。データは列ごと、テーブルごと、間隔ごとに集計され、実行されたクエリの数、スキャンされたパーティション、プルーニングされたパーティション、スキャンされた行、プルーニングされた行、一致した行などのメトリックが含まれます。

TABLE_PRUNING_HISTORY ビュー および クエリプルーニング もご参照ください。

列名

データ型

説明

INTERVAL_START_TIME

TIMESTAMP_LTZ

クエリが実行され、完了した時間範囲の開始時刻(時間単位)。

INTERVAL_END_TIME

TIMESTAMP_LTZ

クエリが実行され、完了した時間範囲の終了時刻(時間単位)。

TABLE_ID

NUMBER

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

TABLE_NAME

VARCHAR

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

SCHEMA_ID

NUMBER

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

SCHEMA_NAME

VARCHAR

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

DATABASE_ID

NUMBER

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

DATABASE_NAME

VARCHAR

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

WAREHOUSE_ID

NUMBER

クエリの実行に使用されたウェアハウスの内部/システム生成識別子。

WAREHOUSE_NAME

VARCHAR

クエリを実行したウェアハウスの名前。

QUERY_HASH

VARCHAR

正規化された SQL テキストに基づいて計算された ハッシュ値

QUERY_PARAMETERIZED_HASH

VARCHAR

パラメーター化されたクエリに基づいて計算された ハッシュ値

COLUMN_ID

NUMBER

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

COLUMN_NAME

VARCHAR

クエリされたテーブルからアクセスされた列の名前。

VARIANT_PATH

VARCHAR

アクセスされている半構造化データへのパス(該当する場合)。アクセスされた列が半構造化データ型を持たない場合はNULL。

ACCESS_TYPE

VARCHAR

列で実行されるアクセスのタイプ(WHERE または JOIN 条件)。

NUM_QUERIES

NUMBER

この時間範囲内に、この特定の QUERY_HASH 値を持ち、このウェアハウスを使って、このテーブルでこのタイプのアクセスでこの列(および該当する場合はバリアントパス)にアクセスしたクエリの実行数。

AGGREGATE_QUERY_ELAPSED_TIME

NUMBER

NUM_QUERIES で定義されたクエリの合計経過時間(ミリ秒単位)。この合計には、キューイングや、コンパイルおよび実行に関連しないその他の時間が含まれます。

AGGREGATE_QUERY_COMPILATION_TIME

NUMBER

NUM_QUERIES で定義されたクエリの合計コンパイル時間(ミリ秒単位)。

AGGREGATE_QUERY_EXECUTION_TIME

NUMBER

NUM_QUERIES で定義されたクエリの合計実行時間(ミリ秒単位)。

PARTITIONS_SCANNED

NUMBER

NUM_QUERIES で定義されたクエリで、このテーブルでスキャンされたパーティション数。

PARTITIONS_PRUNED

NUMBER

NUM_QUERIES で定義されたクエリのためにこのテーブルでプルーニングされた行の数。これらのパーティションはクエリ処理中に削除され、スキャンされなかったため、クエリの効率が向上しました。

ROWS_SCANNED

NUMBER

NUM_QUERIES で定義されたクエリでこのテーブルでスキャンされた行数。

ROWS_PRUNED

NUMBER

NUM_QUERIES で定義されたクエリでこのテーブルでプルーニングされた行数。これらの行はクエリ処理中に削除され、スキャンされなかったため、クエリの効率が向上しました。

ROWS_MATCHED

NUMBER

NUM_QUERIES で定義されたクエリでこのテーブルをスキャンしているときに、WHERE 句のフィルターに一致した行数。

SEARCH_OPTIMIZATION_SUPPORTED_EXPRESSIONS

ARRAY

この列でサポートされている検索最適化式のリスト。これは、NUM_QUERIESで定義されたクエリに対してこのテーブルのスキャンを高速化する可能性があります。

使用上の注意

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

  • データは1年間保持されます。

  • このビューには、 ハイブリッドテーブル の排除情報は含まれません。

  • USAGE_VIEWER データベースロールが付与されているユーザーとロールは、このビューにアクセスできます。詳細については、 SNOWFLAKE データベースロール をご参照ください。

  • ACCESS_TYPE 列には、次のいずれかの値が含まれます。

    • WHERE:列は、WHERE 句のフィルター条件で使用されます。

    • JOIN:列は、JOIN 操作の条件で使用されます。

  • このビューに表示されるアクセス動作は、実行された実際のクエリプランを反映しており、元のクエリテキストと異なる場合があります。たとえば、HAVING 句が GROUPBY 句によって生成された集計結果を参照しない場合、 最適化され、WHERE 句として書き換えられる可能性があり、ACCESS_TYPE 値は``WHERE`` になります。

  • プッシュダウンの最適化のメリットが得られない複雑なフィルタリング条件の場合、フィルタリング条件に一致しない行でも、テーブルスキャン操作中にフィルタリングされないことがあります。したがって、これらの行は ROWS_MATCHED の値にカウントされます。

  • 現在、 SEARCH_OPTIMIZATION_SUPPORTED_EXPRESSIONS 列は、EQUALITY および SUBSTRING:ref:`検索メソッド <label-alter_table_searchoptimizationaction>`のみを提案します。

  • このビューには、クエリごとに実行時間の長い上位1,000件のテーブルスキャンのデータが保持されます。非常に複雑なクエリだけがこのスキャン数を超えるため、データが省略されることはほとんどありません。

指定した日について、特定のテーブルに対するクエリの列レベルのプルーニング履歴を返します。

SELECT interval_start_time, table_name, column_name, access_type, num_queries,
    rows_scanned, rows_pruned, rows_matched,
    search_optimization_supported_expressions::VARCHAR as search_optim
  FROM SNOWFLAKE.ACCOUNT_USAGE.COLUMN_QUERY_PRUNING_HISTORY
  WHERE interval_start_time like '2025-04-24%' AND table_name='SENSOR_DATA_TS'
  ORDER BY 3, 1;
Copy
+-------------------------------+----------------+-------------+-------------+-------------+--------------+-------------+--------------+-----------------------------+
| INTERVAL_START_TIME           | TABLE_NAME     | COLUMN_NAME | ACCESS_TYPE | NUM_QUERIES | ROWS_SCANNED | ROWS_PRUNED | ROWS_MATCHED | SEARCH_OPTIM                |
|-------------------------------+----------------+-------------+-------------+-------------+--------------+-------------+--------------+-----------------------------|
| 2025-04-24 14:00:00.000 -0700 | SENSOR_DATA_TS | DEVICE_ID   | WHERE       |           1 |      2678400 |     2678400 |            5 | ["EQUALITY(\"DEVICE_ID\")"] |
| 2025-04-24 14:00:00.000 -0700 | SENSOR_DATA_TS | DEVICE_ID   | WHERE       |           1 |      2678400 |     2678400 |            5 | ["EQUALITY(\"DEVICE_ID\")"] |
| 2025-04-24 15:00:00.000 -0700 | SENSOR_DATA_TS | DEVICE_ID   | WHERE       |           1 |      2678400 |     2678400 |      2678400 | ["EQUALITY(\"DEVICE_ID\")"] |
| 2025-04-24 15:00:00.000 -0700 | SENSOR_DATA_TS | DEVICE_ID   | WHERE       |           1 |      2678400 |     2678400 |      2678400 | ["EQUALITY(\"DEVICE_ID\")"] |
| 2025-04-24 15:00:00.000 -0700 | SENSOR_DATA_TS | DEVICE_ID   | WHERE       |           1 |      2678400 |     2678400 |            5 | ["EQUALITY(\"DEVICE_ID\")"] |
| 2025-04-24 15:00:00.000 -0700 | SENSOR_DATA_TS | DEVICE_ID   | WHERE       |           1 |      2678400 |     2678400 |      2678400 | ["EQUALITY(\"DEVICE_ID\")"] |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | DEVICE_ID   | WHERE       |           1 |      2678400 |     2678400 |      2678400 | ["EQUALITY(\"DEVICE_ID\")"] |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | DEVICE_ID   | WHERE       |           1 |      2678400 |     2678400 |      2678400 | ["EQUALITY(\"DEVICE_ID\")"] |
| 2025-04-24 19:00:00.000 -0700 | SENSOR_DATA_TS | DEVICE_ID   | WHERE       |           1 |      2678400 |     2678400 |      2678400 | ["EQUALITY(\"DEVICE_ID\")"] |
| 2025-04-24 19:00:00.000 -0700 | SENSOR_DATA_TS | DEVICE_ID   | WHERE       |           1 |      2678400 |     2678400 |      2678400 | ["EQUALITY(\"DEVICE_ID\")"] |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | TEMPERATURE | WHERE       |           1 |      5356800 |           0 |      3262387 | NULL                        |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | TEMPERATURE | WHERE       |           1 |      2678400 |     2678400 |       394106 | NULL                        |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | TEMPERATURE | WHERE       |           1 |      5356800 |           0 |      1227686 | NULL                        |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | TEMPERATURE | WHERE       |           1 |      2678400 |     2678400 |       216642 | NULL                        |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | TEMPERATURE | WHERE       |           1 |      2678400 |     2678400 |       216642 | NULL                        |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | TEMPERATURE | WHERE       |           1 |      5356800 |           0 |      1227686 | NULL                        |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | TEMPERATURE | WHERE       |           1 |      5356800 |           0 |       820272 | NULL                        |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | TEMPERATURE | WHERE       |           1 |      5356800 |           0 |      3262387 | NULL                        |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | TEMPERATURE | WHERE       |           1 |      5356800 |           0 |      3262387 | NULL                        |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | TEMPERATURE | WHERE       |           1 |      5356800 |           0 |      1227686 | NULL                        |
| 2025-04-24 17:00:00.000 -0700 | SENSOR_DATA_TS | TEMPERATURE | WHERE       |           1 |      2678400 |     2678400 |       216642 | NULL                        |
+-------------------------------+----------------+-------------+-------------+-------------+--------------+-------------+--------------+-----------------------------+

このクエリの sensor_data_ts テーブルには、5356800 行の合成時系列データが含まれています。テーブルの行のちょうど半分(2678400)が、WHERE 句の条件で device_id および temperature 列 をフィルターしたクエリ数に対してプルーニングされました。

その device_id 列は、EQUALITY 検索メソッドを使用する検索最適化のターゲットとして提案されます。テーブルスキャンは、この検索最適化の追加によりメリットを受ける可能性があります。

Tip

ARRAY_TO_STRING 関数を使用してSEARCH_OPTIMIZATION_SUPPORTED_EXPRESSIONS列を文字列に変換し、読みやすくできます。例:

ARRAY_TO_STRING(search_optimization_supported_expressions, ', ')
Copy