TABLE_PRUNING_HISTORY 视图¶
此 Account Usage 视图可用于确定所有表的修剪效率,并了解表的默认(自然)数据排序如何影响修剪。
您可以将修剪的分区数量 (PARTITIONS_PRUNED) 与扫描和修剪的分区总数 (PARTITIONS_SCANNED + PARTITIONS_PRUNED) 进行比较。
此视图中的每一行代表给定时间间隔内,特定表的修剪历史记录。数据按时间间隔汇总,包括有关扫描次数、扫描的分区数量、修剪的分区数量、扫描的行数和修剪的行数的信息。
您还可以使用此视图比较在为表启用 自动聚类 和 搜索优化 之前和之后的修剪效果。
另请参阅 TABLE_QUERY_PRUNING_HISTORY 视图 和 COLUMN_QUERY_PRUNING_HISTORY 视图。
列¶
列名称 |
数据类型 |
描述 |
|---|---|---|
START_TIME |
TIMESTAMP_LTZ |
执行和完成查询的时间范围(以小时为单位)的开始时间。 |
END_TIME |
TIMESTAMP_LTZ |
执行和完成查询的时间范围(以小时为单位)的结束时间。 |
TABLE_ID |
NUMBER |
已查询表的内部/系统生成的标识符。 |
TABLE_NAME |
VARCHAR |
被查询表的名称。 |
SCHEMA_ID |
NUMBER |
包含被查询表的架构的内部/系统生成的标识符。 |
SCHEMA_NAME |
VARCHAR |
包含被查询表的架构的名称。 |
DATABASE_ID |
NUMBER |
包含被查询表的数据库的内部/系统生成的标识符。 |
DATABASE_NAME |
VARCHAR |
包含被查询表的数据库的名称。 |
NUM_SCANS |
NUMBER |
在 START_TIME 和 END_TIME 窗口期间,所有查询(包括 SELECT 语句和 DML 语句)对表执行的扫描操作数量。请注意,某个查询可能会对同一个表进行多次扫描操作。 |
PARTITIONS_SCANNED |
NUMBER |
|
PARTITIONS_PRUNED |
NUMBER |
为 |
ROWS_SCANNED |
NUMBER |
在 |
ROWS_PRUNED |
NUMBER |
为 |
使用说明¶
视图的延迟时间最长可达 6 小时。
此视图不包括 混合表 的修剪信息。
此视图会保留每个查询运行时间最长的 1,000 次表扫描的数据。只有复杂度极高的查询才会超过此扫描次数,因此很少会有数据会被忽略。
示例¶
列出过去七天内修剪效率最差的五个表:
当扫描分区的数量和修剪分区的数量之和为零时,上述示例使用 GREATEST 来避免发生除以零的情况。