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 |
|
PARTITIONS_PRUNED_DEFAULT |
NUMBER |
|
PARTITIONS_PRUNED_ADDITIONAL |
NUMBER |
|
使用说明¶
视图的延迟时间最长可达 6 小时。
示例¶
列出最近七天内从搜索优化中获益最大的前五张表:
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;
上面的示例使用 GREATEST 来避免在修剪分区数为零时,出现除以零的问题。