

 从补丁 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/)。

# STV\_INFLIGHT
<a name="r_STV_INFLIGHT"></a>

使用 STV\_INFLIGHT 表可确定当前正在对集群运行的查询。如果您正在进行故障排除，这有助于检查长时间运行的查询的状态。

STV\_INFLIGHT 不会显示仅领导节点查询。有关更多信息，请参阅 [仅领导节点函数](c_SQL_functions_leader_node_only.md)。STV\_INFLIGHT 对所有用户可见。超级用户可以查看所有行；普通用户只能查看其自己的数据。有关更多信息，请参阅 [系统表和视图中的数据可见性](cm_chap_system-tables.md#c_visibility-of-data)。

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

## 使用 STV\_INFLIGHT 进行故障排除
<a name="r_STV_INFLIGHT_troubleshooting"></a>

如果您使用 STV\_INFLIGHT 对一个查询或一组查询的性能进行故障排除，请注意以下几点：
+ 长时间运行的未结事务通常会增加负载。这些未结事务可能会导致其他查询的运行时间更长。
+ 如果长时间运行的 COPY 和 ETL 任务占用了大量计算资源，则可能会影响集群上运行的其他查询。在大多数情况下，将这些长时间运行的任务移至使用率较低的时间，可以提高报告或分析工作负载的性能。
+ 有些视图为 STV\_INFLIGHT 提供了相关信息。其中包括 [STL\_QUERYTEXT](r_STL_QUERYTEXT.md)（用于捕获 SQL 命令的查询文本）和 [SVV\_QUERY\_INFLIGHT](r_SVV_QUERY_INFLIGHT.md)（用于将 STV\_INFLIGHT 联接到 STL\_QUERYTEXT）。您也可以将 [STV\_RECENTS](r_STV_RECENTS.md) 与 STV\_INFLIGHT 结合使用来进行故障排除。例如，STV\_RECENTS 可以指示特定查询是处于*正在运行* 还是*已完成* 状态。将这些信息与来自 STV\_INFLIGHT 的结果相结合，可以为您提供有关查询的属性和计算资源影响的更多信息。

您还可以使用 Amazon Redshift 控制台监控正在运行的查询。

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


| 列名称  | 数据类型  | 描述  | 
| --- | --- | --- | 
| userid  | integer  | 生成条目的用户的 ID。 | 
| slice  | integer  | 正在运行查询的分片。 | 
| query  | integer  | 查询 ID。可用于联接各种其他系统表和视图。 | 
| label  | character(320)  |  用于运行查询的文件的名称或使用 SET QUERY\_GROUP 命令定义的标签。如果查询并非基于文件或未设置 QUERY\_GROUP 参数，则此字段为空。 | 
| xid  | bigint  | 事务 ID。 | 
| pid  | integer  | 进程 ID。会话中的所有查询在同一进程中运行，因此，如果您在同一会话中运行一系列查询，则此值保持不变。您可以使用此列联接到 [STL\_ERROR](r_STL_ERROR.md) 表。 | 
| starttime  | timestamp  | 开始查询的时间。 | 
| text  | character(100)  | 查询文本，截断为 100 个字符（如果语句超过此限制）。 | 
| suspended  | integer  | 查询是否已暂停。0 = false；1 = true。 | 
| insert\_pristine  | integer  | 当前查询正在运行时，是否可以运行写查询。1 = 不允许写查询。0 = 允许写查询。此列专用在调试中。 | 
| concurrency\_scaling\_status | integer  | 指示查询运行在主集群还是并发扩展集群上，可能值如下所示：<br />0 - 运行在主集群上 <br />1 - 运行在并发扩展集群上  | 

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

要查看当前正在对数据库运行的所有活动查询，请键入以下查询：

```
select * from stv_inflight;
```

下面的示例输出显示当前正在运行两个查询，其中包括 STV\_INFLIGHT 查询自身和已从名为 `avgwait.sql` 的脚本运行的查询：

```
select slice, query, trim(label) querylabel, pid,
starttime, substring(text,1,20) querytext
from stv_inflight;

slice|query|querylabel | pid |        starttime         |      querytext
-----+-----+-----------+-----+--------------------------+--------------------
1011 |  21 |           | 646 |2012-01-26 13:23:15.645503|select slice, query,
1011 |  20 |avgwait.sql| 499 |2012-01-26 13:23:14.159912|select avg(datediff(
(2 rows)
```

以下查询选择了几列，包括 concurrency\_scaling\_status。此列表示是否正在向并发扩展集群发送查询。如果对于某些结果，该值为 `1`，则表明正在使用并发扩展计算资源。有关更多信息，请参阅 [并发扩展](concurrency-scaling.md)。

```
select userid, 
query,
pid,
starttime,
text,
suspended,
concurrency_scaling_status
 from STV_INFLIGHT;
```

示例输出显示了正在将一个查询发送到并发扩展集群。

```
 query  | pid     |        starttime           |   text                 | suspended     |  concurrency_scaling_status
--------+---------+----------------------------|------------------------|---------------|-------------------------------
1234567 | 123456  | 2012-01-26 13:23:15.645503 | select userid, query...  0                1
2345678 | 234567  | 2012-01-26 13:23:14.159912 | select avg(datediff(...  0                0
(2 rows)
```

有关排除查询性能故障的更多提示，请参阅[查询故障排除](queries-troubleshooting.md)。