STL_UNIQUE - Amazon Redshift
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

STL_UNIQUE

分析在 SELECT 列表中使用 DISTINCT 函数时或者在 UNION 或 INTERSECT 查询中删除重复项时发生的执行步骤。

此视图 对所有用户可见。超级用户可以查看所有行;普通用户只能看到自己的数据。有关更多信息,请参阅 Visibility of data in system tables and views

表列

列名称 数据类型 Description
userid integer 生成该条目的用户 ID。
query integer 查询 ID。查询列可用于连接其他系统表和视图。
slice integer 识别查询运行所在分片的数目。
segment integer 标识查询区段的数字。
step integer 已执行的查询步骤。
starttime timestamp 开始执行查询的时间 (用 UTC 表示),有 6 位数字精度,可精确到小数秒。例如:2009-06-12 11:29:19.131358
endtime timestamp 完成查询的时间 (用 UTC 表示),有 6 位数字精度,可精确到小数秒。例如:2009-06-12 11:29:19.131358
tasknum integer 分配执行该步骤的查询任务流程的数目。
rows bigint 已处理的总行数。
is_diskbased character(1) 如果为 true (t),则查询是作为基于磁盘的操作执行的。如果为 false (f),则查询是在内存中执行。
slots integer 哈希存储桶的总数。
workmem bigint 已分配给步骤的工作内存中的字节总数。
max_buffers_used bigint 转到磁盘之前在哈希表中使用的缓冲区的最大数量。
type character(6) 步骤的类型。有效值为:
  • HASHED。表示步骤使用了已分组但未排序的聚合。

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

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

示例查询

假设您执行以下查询:

select distinct eventname from event order by 1;

假定上个查询的 ID 是 6313,以下示例显示由分段 0 和 1 中每个切片的唯一步骤生成的行的数量。

select query, slice, segment, step, datediff(msec, starttime, endtime) as msec, tasknum, rows from stl_unique where query = 6313 order by query desc, slice, segment, step;
query | slice | segment | step | msec | tasknum | rows -------+-------+---------+------+------+---------+------ 6313 | 0 | 0 | 2 | 0 | 22 | 550 6313 | 0 | 1 | 1 | 256 | 20 | 145 6313 | 1 | 0 | 2 | 1 | 23 | 540 6313 | 1 | 1 | 1 | 42 | 21 | 127 6313 | 2 | 0 | 2 | 1 | 22 | 540 6313 | 2 | 1 | 1 | 255 | 20 | 158 6313 | 3 | 0 | 2 | 1 | 23 | 542 6313 | 3 | 1 | 1 | 38 | 21 | 146 (8 rows)