STL_AGGR - Amazon Redshift

STL_AGGR

分析查询的聚合执行步骤。这些步骤发生于执行聚合函数和 GROUP BY 语句期间。

STL_AGGR 对所有用户可见。超级用户可以查看所有行;普通用户只能查看其自己的数据。有关更多信息,请参阅 系统表和视图中的数据可见性

注意

STL_AGGR 仅包含在主集群上运行的查询。它不包含在并发扩展集群上运行的查询。要访问在主集群和并发扩展集群上运行的查询,我们建议您使用 SYS 监控视图 SYS_QUERY_DETAIL。SYS 监控视图中的数据经过格式化处理,便于使用和理解。

表列

列名称 数据类型 描述
userid integer 生成该条目的用户 ID。
query integer 查询 ID。查询列可用于连接其他系统表和视图。
slice integer 标识运行查询所在切片的标识符。
segment integer 标识查询区段的数字。
step integer 运行的查询步骤。
starttime 时间戳 查询开始的时间(采用 UTC 表示)。总时间包括排队和执行时间。秒的小数部分以 6 位精度表示。例如:2009-06-12 11:29:19.131358
endtime 时间戳 查询完成的时间(采用 UTC 表示)。总时间包括排队和执行时间。秒的小数部分以 6 位精度表示。例如:2009-06-12 11:29:19.131358
tasknum 整数 分配用于运行步骤的查询任务进程的数量。
rows bigint 处理的总行数。
bytes bigint 该步骤中所有输出行的大小(以字节为单位)。
slots integer 哈希桶的数量。
occupied integer 包含记录的槽位的数量。
maxlength integer 最大槽位的大小。
tbl integer 表 ID。
is_diskbased character(1) 如果为 true (t),则查询是作为基于磁盘的操作运行的。如果为 false (f),则查询是在内存中运行。
workmem bigint 分配给步骤的工作内存的字节数。
type character(6) 步骤的类型。有效值为:
  • HASHED。表示步骤使用了已分组但未排序的聚合。

  • PLAIN。表示步骤使用了未分组的标量聚合。

  • SORTED。表示步骤使用了已分组且已排序的聚合。

resizes integer 此信息仅供内部使用。
flushable integer 此信息仅供内部使用。

示例查询

返回有关 SLICE 1 和 TBL 239 的聚合执行步骤的信息。

select query, segment, bytes, slots, occupied, maxlength, is_diskbased, workmem, type from stl_aggr where slice=1 and tbl=239 order by rows limit 10;
query | segment | bytes | slots | occupied | maxlength | is_diskbased | workmem | type -------+---------+-------+---------+----------+-----------+--------------+-----------+-------- 562 | 1 | 0 | 4194304 | 0 | 0 | f | 383385600 | HASHED 616 | 1 | 0 | 4194304 | 0 | 0 | f | 383385600 | HASHED 546 | 1 | 0 | 4194304 | 0 | 0 | f | 383385600 | HASHED 547 | 0 | 8 | 0 | 0 | 0 | f | 0 | PLAIN 685 | 1 | 32 | 4194304 | 1 | 0 | f | 383385600 | HASHED 652 | 0 | 8 | 0 | 0 | 0 | f | 0 | PLAIN 680 | 0 | 8 | 0 | 0 | 0 | f | 0 | PLAIN 658 | 0 | 8 | 0 | 0 | 0 | f | 0 | PLAIN 686 | 0 | 8 | 0 | 0 | 0 | f | 0 | PLAIN 695 | 1 | 32 | 4194304 | 1 | 0 | f | 383385600 | HASHED (10 rows)