架构:

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 小时。

示例

列出最近七天内从搜索优化中获益最大的前五张表:

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 来避免在修剪分区数为零时,出现除以零的问题。

语言: 中文