

 从补丁 198 开始，Amazon Redshift 将不再支持创建新的 Python UDF。现有的 Python UDF 将继续正常运行至 2026 年 6 月 30 日。有关更多信息，请参阅[博客文章](https://www.amazonaws.cn/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/)。

# SVV\_QUERY\_STATE
<a name="r_SVV_QUERY_STATE"></a>

 使用 SVV\_QUERY\_STATE 查看有关当前正在运行的查询的运行时信息。

SVV\_QUERY\_STATE 视图包含 STV\_EXEC\_STATE 表的数据子集。

SVV\_QUERY\_STATE 对所有用户可见。超级用户可以查看所有行；普通用户只能查看其自己的数据。有关更多信息，请参阅 [系统表和视图中的数据可见性](cm_chap_system-tables.md#c_visibility-of-data)。

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

**注意**  
此视图仅在查询预置集群时可用。

## 表列
<a name="r_SVV_QUERY_STATE-table-columns"></a>


| 列名称  | 数据类型  | 描述  | 
| --- | --- | --- | 
| userid  | integer  | 生成条目的用户的 ID。 | 
| query  | integer  | 查询 ID。可用于联接各种其他系统表和视图。 | 
| seg  | 整数  | 正在运行的查询段编号。一个查询包含多个区段，而且每个区段包含一个或多个步骤。查询段可并行运行。每个段在一个进程中运行。 | 
| step  | 整数  | 正在运行的查询步骤编号。步骤是最小的查询运行时单位。每个步骤代表独立的工作单位，如扫描表、返回结果或排序数据。 | 
| maxtime  | interval  | 供此步骤运行的最大时长（单位为微秒）。 | 
| avgtime  | interval  | 供此步骤运行的平均时长（单位为微秒）。 | 
| rows  | bigint  | 正在运行的步骤产生的行数。 | 
| bytes  | bigint  | 正在运行的步骤产生的字节数。 | 
| cpu  | bigint  | 供内部使用。 | 
| memory  | bigint  | 供内部使用。 | 
| rate\_row  | double precision  | 查询开始以来的每秒行数速率，计算方法为：汇总行数，然后除以从开始查询以来到当前时间的秒数。 | 
| rate\_byte  | double precision  | 查询开始以来的每秒字节速率，计算方法为：汇总字节数，然后除以从开始查询以来到当前时间的秒数。 | 
| label  | character(25)  | 查询标签：步骤名称，如 scan 或 sort。 | 
| is\_diskbased  | character(1)  | 此查询步骤是否作为基于磁盘的操作运行：true (t) 或 false (f)。只有哈希、排序和聚合等特定步骤才能转到磁盘。许多类型的步骤始终在内存中执行。 | 
| workmem  | bigint  | 分配到查询步骤的工作内存量（单位为字节）。 | 
| num\_parts  | integer  | 执行哈希步骤期间将哈希表划分成的分区数。此列中的正数并不表示哈希步骤是作为基于磁盘的操作运行的。请查看 IS\_DISKBASED 列中的值以了解哈希步骤是否基于磁盘。 | 
| is\_rrscan  | character(1)  | 如果为 true (t)，则表示对步骤使用了限制范围的扫描。默认为 false (f)。 | 
| is\_delayed\_scan  | character(1)  | 如果为 true (t)，则表示对步骤使用了延迟扫描。默认为 false (f)。 | 

## 示例查询
<a name="r_SVV_QUERY_STATE-sample-queries"></a>

 **按步骤确定查询的处理时间** 

下面的查询显示查询 ID 为 279 的查询每一步的运行时长以及 Amazon Redshift 处理的数据行数：

```
select query, seg, step, maxtime, avgtime, rows, label
from svv_query_state
where query = 279
order by query, seg, step;
```

此查询检索有关查询 279 的处理信息，如下面的示例输出所示：

```
query |   seg   | step | maxtime | avgtime |  rows   | label
------+---------+------+---------+---------+---------+-------------------
  279 |       3 |    0 | 1658054 | 1645711 | 1405360 | scan
  279 |       3 |    1 | 1658072 | 1645809 |       0 | project
  279 |       3 |    2 | 1658074 | 1645812 | 1405434 | insert
  279 |       3 |    3 | 1658080 | 1645816 | 1405437 | distribute
  279 |       4 |    0 | 1677443 | 1666189 | 1268431 | scan
  279 |       4 |    1 | 1677446 | 1666192 | 1268434 | insert
  279 |       4 |    2 | 1677451 | 1666195 |       0 | aggr
(7 rows)
```

 **确定当前是否在磁盘上运行任何事件查询** 

下面的查询显示磁盘上有没有任何当前正在运行的活动查询：

```
select query, label, is_diskbased from svv_query_state
where is_diskbased = 't';
```

此示例输出显示磁盘上当前正在运行的任何活动查询：

```
 query | label        | is_diskbased
-------+--------------+--------------
1025   | hash tbl=142 |      t
(1 row)
```