

 从补丁 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\_RECENTS
<a name="r_STV_RECENTS"></a>

使用 STV\_RECENTS 表可以了解有关当前活动的和最近运行的数据库查询的信息。

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

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

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

STV\_RECENTS 对于确定一个查询或一组查询当前是正在运行还是已完成特别有用。它还显示查询运行的持续时间。这有助于了解哪些查询是长时间运行的。

您可以将 STV\_RECENTS 联接到其他系统视图（例如 [STV\_INFLIGHT](r_STV_INFLIGHT.md)），以收集有关正在运行的查询的其他元数据。（示例查询部分中有一个示例显示了如何执行此操作。） 您还可以使用从该视图返回的记录以及 Amazon Redshift 控制台中的监控功能来实时排除故障。

对 STV\_RECENTS 形成补充的系统视图包括 [STL\_QUERYTEXT](r_STL_QUERYTEXT.md) 和 [SVV\_QUERY\_INFLIGHT](r_SVV_QUERY_INFLIGHT.md)，前者用于检索 SQL 命令的查询文本，后者用于将 STV\_INFLIGHT 联接到 STL\_QUERYTEXT。

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


| 列名称  | 数据类型  | 描述  | 
| --- | --- | --- | 
| userid  | integer  | 生成条目的用户的 ID。 | 
| status  | character(20)  | 查询状态。有效值为 Running、Done。 | 
| starttime  | timestamp  | 开始查询的时间。 | 
| duration  | integer  | 自会话启动以来经过的微秒数。 | 
| user\_name  | character(50)  | 运行了进程的用户名。 | 
| db\_name  | character(50)  | 数据库的名称。 | 
| query  | character(600)  | 查询文本，最多 600 个字符。截断所有的额外字符。 | 
| pid  | integer  | 与查询关联的会话的进程 ID，对于已完成的查询，该值始终为 -1。 | 

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

要确定当前正在对数据库运行哪些查询，请运行以下查询：

```
select user_name, db_name, pid, query
from stv_recents
where status = 'Running';
```

下面的示例输出显示对 TICKIT 数据库运行的单个查询：

```
user_name | db_name |   pid   | query   
----------+---------+---------+-------------
dwuser    | tickit  |  19996  |select venuename, venueseats from 
venue where venueseats > 50000 order by venueseats desc;
```

以下示例返回正在运行或者在队列中等待运行的查询（如果有）的列表：

```
select * from stv_recents where status<>'Done';

status |    starttime        | duration |user_name|db_name| query     | pid
-------+---------------------+----------+---------+-------+-----------+------
Running| 2010-04-21 16:11... | 281566454| dwuser  |tickit | select ...| 23347
```

此查询不返回结果，除非正在运行一些并发查询，而其中一些查询位于队列中。

以下示例扩展前一示例。在此示例中，从结果中排除真正“正在进行”（正在运行，未在等待）的查询：

```
select * from stv_recents where status<>'Done'
and pid not in (select pid from stv_inflight);
...
```

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