STV_EXEC_STATE - Amazon Redshift

STV_EXEC_STATE

使用 STV_EXEC_STATE 表可查看有关正在计算节点上主动运行的查询和查询步骤的信息。

此信息通常仅用于排查工程问题。视图 SVV_QUERY_STATE 和 SVL_QUERY_SUMMARY 从 STV_EXEC_STATE 提取其信息。

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

此表中的部分或全部数据也可以在 SYS 监控视图 SYS_QUERY_DETAIL 中找到。SYS 监控视图中的数据经过格式化处理,便于使用和理解。我们建议您使用 SYS 监控视图进行查询。

表列

列名称 数据类型 描述
userid integer 生成条目的用户的 ID。
query integer 查询 ID。可用于联接各种其他系统表和视图。
slice integer 步骤完成所在的节点切片。
segment integer 运行的查询段。查询段是一系列步骤。
step integer 完成的查询段步骤。步骤是查询执行的最小单元。
starttime timestamp 步骤运行的时间。
currenttime timestamp 当前时间。
tasknum integer 分配到完成步骤的查询任务进程。
rows bigint 已处理的行数。
bytes bigint 已处理的字节数。
label char(256) 由查询步骤名称和适用的表 ID 和表名组成的步骤标签(例如 scan tbl=100448 name =user)。三位表 ID 通常是指临时表的扫描。如果显示 tbl=0,则通常是指扫描常量值。
is_diskbased char(1) 此查询步骤是否已作为基于磁盘的操作完成:true(t)或 false(f)。只有哈希、排序和聚合等特定步骤才能转到磁盘。许多类型的步骤始终在内存中完成。
workmem bigint 分配给步骤的工作内存的字节数。
num_parts integer 执行哈希步骤期间将哈希表划分成的分区数。此列中的正数并不表示哈希步骤是作为基于磁盘的操作完成的。请查看 IS_DISKBASED 列中的值以了解哈希步骤是否基于磁盘。
is_rrscan char(1) 如果为 true (t),则表示对步骤使用了限制范围的扫描。默认为 false (f)。
is_delayed_scan char(1) 如果为 true (t),则表示对步骤使用了延迟扫描。默认为 false (f)。

示例查询

Amazon Redshift 建议查询 SVL_QUERY_SUMMARY 或 SVV_QUERY_STATE 以对用户更友好的格式获取 STV_EXEC_STATE 中的信息,而不是直接查询 STV_EXEC_STATE。有关更多详细信息,请参阅 SVL_QUERY_SUMMARYSVV_QUERY_STATE 表文档。