- スキーマ:
TABLE_PRUNING_HISTORY ビュー¶
このAccount Usageビューを使用して、すべてのテーブルに対する排除の効率性を判断したり、テーブルのデフォルトの(自然な)データ並び替えが排除にどのように影響するかを理解したりできます。
排除されたパーティションの数 (PARTITIONS_PRUNED
) と、スキャンおよび排除されたパーティションの合計数 (PARTITIONS_SCANNED + PARTITIONS_PRUNED
) を比較できます。
またこのビューを使用して、テーブルの 自動クラスタリング および 検索の最適化 を有効化する前と後の排除の効果を比較できます。
列¶
列名 |
データ型 |
説明 |
---|---|---|
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 の期間の全クエリ(SELECT ステートメントや DML ステートメントを含む)からのスキャン操作の数。クエリによっては、同じテーブルに対してスキャン操作が複数回行われる場合があります。 |
PARTITIONS_SCANNED |
NUMBER |
|
PARTITIONS_PRUNED |
NUMBER |
|
ROWS_SCANNED |
NUMBER |
|
ROWS_PRUNED |
NUMBER |
|
使用上の注意¶
ビューの待機時間は最大6時間です。
このビューには、 ハイブリッドテーブル の排除情報は含まれません。
例¶
過去7日以内に排除の効率が最も低かったテーブルの上位5つを表示します。
SELECT
table_id,
ANY_VALUE(table_name) AS table_name,
SUM(num_scans) AS total_num_scans,
SUM(partitions_scanned) AS total_partitions_scanned,
SUM(partitions_pruned) AS total_partitions_pruned,
SUM(rows_scanned) AS total_rows_scanned,
SUM(rows_pruned) AS total_rows_pruned
FROM SNOWFLAKE.ACCOUNT_USAGE.TABLE_PRUNING_HISTORY
WHERE start_time >= DATEADD(day, -7, CURRENT_TIMESTAMP())
GROUP BY table_id
ORDER BY
total_partitions_pruned / GREATEST(total_partitions_scanned + total_partitions_pruned, 1),
total_partitions_scanned DESC
LIMIT 5;
+----------+----------------+-----------------+--------------------------+-------------------------+--------------------+-------------------+
| TABLE_ID | TABLE_NAME | TOTAL_NUM_SCANS | TOTAL_PARTITIONS_SCANNED | TOTAL_PARTITIONS_PRUNED | TOTAL_ROWS_SCANNED | TOTAL_ROWS_PRUNED |
|----------+----------------+-----------------+--------------------------+-------------------------+--------------------+-------------------|
| 308226 | SENSOR_DATA_TS | 11 | 21 | 1 | 52500000 | 2500000 |
| 185364 | MATCH | 16 | 14 | 2 | 240968 | 34424 |
| 209932 | ORDER_HEADER | 2 | 300 | 56 | 421051748 | 75350790 |
| 209922 | K7_T1 | 261 | 261 | 52 | 30421 | 3272 |
| 338948 | SENSOR_DATA_TS | 9 | 15 | 3 | 38880000 | 8035200 |
+----------+----------------+-----------------+--------------------------+-------------------------+--------------------+-------------------+
上の例では GREATEST を使用して、スキャンされたパーティションの合計数と、排除されたパーティションの数がゼロの場合に、ゼロ除算が起きることを防いでいます。