Amazon Redshift
数据库开发人员指南 (API Version 2012-12-01)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

STL_QUERY_METRICS

包含已完成在用户定义的查询队列中运行的查询的指标信息 (如处理的行数、CPU 利用率、输入/输出和磁盘利用率)。要查看当前运行的活动查询的指标,请参阅 STV_QUERY_METRICS 系统表。

查询指标按一秒的间隔采样。因此,同一查询的不同运行可能返回稍微不同的时间。此外,运行不到 1 秒的查询段可能不会记录。

STL_QUERY_METRICS 可跟踪和聚合查询、段和步骤级别的指标。有关查询段和步骤的信息,请参阅查询计划和执行工作流程。很多指标 (如 max_rowscpu_time 等) 是跨节点切片进行合计的。有关节点切片的更多信息,请参阅数据仓库系统架构

要确定行在哪个级别报告指标,请检查 segmentstep_type 列。

  • 如果 segmentstep_type 均为 -1,则行在查询级别报告指标。

  • 如果 segment 不为 -1,而 step_type-1,则行在段级别报告指标。

  • 如果 segmentstep_type 均不为 -1,则行在步骤级别报告指标。

SVL_QUERY_METRICS 视图和 SVL_QUERY_METRICS_SUMMARY 视图将聚合此表中的数据并以更容易访问的形式呈现信息。

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

表行

行名称 数据类型 描述
userid integer 运行生成条目的查询的用户的 ID。
service_class integer WLM 查询队列 (服务类) 的 ID。查询队列在 WLM 配置中定义。仅对用户定义的队列报告的指标。
query integer 查询 ID。查询列可用于连接其他系统表和视图。
segment integer 段编号。一个查询包含多个区段,而且每个区段包含一个或多个步骤。查询段可并行运行。每个段在一个进程中运行。如果段值为 -1,则指标段值将汇总到查询级别。
step_type integer 已执行步骤的类型。有关步骤类型的说明,请参阅步骤类型
starttime timestamp 开始执行查询的时间(用 UTC 表示),有 6 位数字精度,可精确到小数秒。例如:2009-06-12 11:29:19.131358
切片 integer 群集的切片数。
max_rows bigint 某个步骤的最大行输出数 (跨所有切片进行聚合)。
rows bigint 步骤处理的行数。
max_cpu_time bigint 使用的最大 CPU 时间 (以微秒为单位)。在段级别,段的跨所有切片使用的最大 CPU 时间。在查询级别,查询段使用的最大 CPU 时间。
cpu_time bigint 使用的 CPU 时间 (单位为微秒)。在段级别,段的跨所有切片的总 CPU 时间。在查询级别,查询的跨所有切片和段的 CPU 时间合计。
max_blocks_read bigint 段读取的 1 MB 数据块的最大数量 (跨所有切片进行聚合)。在段级别,段的跨所有切片读取的 1 MB 数据块的最大数量。在查询级别,任何查询段读取的 1 MB 数据块的最大数量。
blocks_read bigint 查询或段读取的 1 MB 数据块的数量。
max_run_time bigint 段的最大已用时间 (以微秒为单位)。在段级别,段的跨所有切片的最大运行时间。在查询级别,任何查询段的最大运行时间。
run_time bigint

跨所有切片合计的总运行时间。运行时间不包括等待时间。

在段级别,跨所有切片合计的段的运行时间。在查询级别,跨所有切片和段合计的查询的运行时间。由于此值是一个合计,因此运行时间与查询执行时间无关。

max_blocks_to_disk bigint 用于写入中间结果的最大磁盘空间量 (以 MB 数据块为单位)。在段级别,段跨所有切片使用的最大磁盘空间量。在查询级别,任何查询段使用的最大磁盘空间量。
blocks_to_disk bigint 查询和段用于写入中间结果使用的磁盘空间量 (以 MB 数据块为单位)。
step integer 已执行的查询步骤。
max_query_scan_size bigint 查询扫描的数据的最大大小 (以 MB 为单位)。在段级别,段跨所有切片扫描的数据的最大大小。在查询级别,任何查询段扫描的数据的最大大小。
query_scan_size bigint 查询扫描的数据的大小 (以 MB 为单位)。

查询示例

要查找具有较长的 CPU 时间 (1000 秒以上) 的查询,请运行以下查询。

Copy
Select query, cpu_time / 1000000 as cpu_seconds from stl_query_metrics where segment = -1 and cpu_time > 1000000000 order by cpu_time; query | cpu_seconds ------+------------ 25775 | 9540

要查找具有返回超过一百万个行的嵌套循环联接的活动查询,请运行以下查询。

Copy
select query, rows from stl_query_metrics where step_type = 15 and rows > 1000000 order by rows; query | rows ------+----------- 25775 | 2621562702

要查找已运行超过 60 秒且使用的 CPU 时间不到 10 秒的活动查询,请运行以下查询。

Copy
select query, run_time/1000000 as run_time_seconds from stl_query_metrics where segment = -1 and run_time > 60000000 and cpu_time < 10000000; query | run_time_seconds ------+----------------- 25775 | 114

本页内容: