

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

# STL\_SCAN
<a name="r_STL_SCAN"></a>

分析查询的表扫描步骤。此表中行的步骤数始终为 0，因为扫描是分段中的第一步。

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

**注意**  
STL\_SCAN 仅包含在主预置集群上运行的查询。它不包含在并发扩展集群或无服务器命名空间上运行的查询。要访问在主集群、并发扩展集群和无服务器命名空间上运行的查询的解释计划，我们建议您使用 SYS 监控视图 [SYS\_QUERY\_DETAIL](SYS_QUERY_DETAIL.md)。SYS 监控视图中的数据经过格式化处理，便于使用和理解。

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


| 列名称  | 数据类型  | 描述  | 
| --- | --- | --- | 
| userid | integer | 生成该条目的用户 ID。 | 
| query | integer | 查询 ID。查询列可用于连接其他系统表和视图。 | 
| slice | integer | 标识运行查询所在切片的标识符。 | 
| segment | integer | 标识查询区段的数字。 | 
| step | integer | 运行的查询步骤。 | 
| starttime | timestamp | 查询开始的时间（采用 UTC 表示）。总时间包括排队和执行时间。秒的小数部分以 6 位精度表示。例如：2009-06-12 11:29:19.131358。 | 
| endtime | timestamp | 查询完成的时间（采用 UTC 表示）。总时间包括排队和执行时间。秒的小数部分以 6 位精度表示。例如：2009-06-12 11:29:19.131358。 | 
| tasknum | 整数 | 分配用于运行步骤的查询任务进程的数量。 | 
| rows | bigint | 处理的总行数。 | 
| bytes | bigint | 该步骤中所有输出行的大小（以字节为单位）。 | 
| fetches | bigint | 此信息仅供内部使用。 | 
| type | integer | 扫描类型的 ID。有关有效值的列表，请参阅下表。 | 
| tbl | integer | 表 ID。 | 
| is\_rrscan | character(1) | 如果为 true (t)，则表示对步骤使用了限制范围的扫描。 | 
| is\_delayed\_scan | character(1) | 此信息仅供内部使用。 | 
| rows\_pre\_filter | bigint | 对于永久表的扫描，这是在筛选标记为删除的行（虚影行）之前和应用用户定义的查询筛选条件之前发出的行的总数。 | 
| rows\_pre\_user\_filter | bigint | 对于永久表的扫描，这是在筛选标记为删除的行（虚影行）之后但在应用用户定义的查询筛选条件之前处理的行的数量。 | 
| perm\_table\_name | character(136) | 对于永久表的扫描，这是扫描的表的名称。 | 
| is\_rlf\_scan | character(1) | 如果为 true (t)，则表示对步骤使用了行级别筛选。 | 
| is\_rlf\_scan\_reason | integer | 此信息仅供内部使用。 | 
| num\_em\_blocks | integer | 此信息仅供内部使用。 | 
| checksum | bigint | 此信息仅供内部使用。 | 
| runtime\_filtering | character(1) | 如果为 true (t)，则表示应用了运行时筛选器。 | 
| scan\_region | 整数 | 此信息仅供内部使用。 | 
| num\_sortkey\_as\_predicate | 整数 | 此信息仅供内部使用。 | 
| row\_fetcher\_state | 整数 | 此信息仅供内部使用。 | 
| consumed\_scan\_ranges | bigint | 此信息仅供内部使用。 | 
| work\_stealing\_reason | bigint | 此信息仅供内部使用。 | 
| is\_vectorized\_scan | character(1) | 此信息仅供内部使用。 | 
|  is\_vectorized\_scan\_reason | 整数 | 此信息仅供内部使用。 | 
| row\_fetcher\_reason | bigint | 此信息仅供内部使用。 | 
| topology\_signature | bigint | 此信息仅供内部使用。 | 
| use\_tpm\_partition | character(1) | 此信息仅供内部使用。 | 
| is\_rrscan\_expr | character(1) | 此信息仅供内部使用。 | 
| scanned\_mega\_value | character(1) | 此信息仅供内部使用。此信息显示给定的扫描步骤是否扫描了大值。大值将存储在多个块中。原定设置情况下，块大小为 1 MB，大值大于原定设置中的 1 MB。 | 

## 扫描类型
<a name="r_STL_SCAN-scan-types"></a>


| 类型 ID | 描述 | 
| --- | --- | 
| 1 | 网络中的数据。 | 
| 2 | 压缩共享内存中的永久用户表。 | 
| 3 | 临时行式表。 | 
| 21 | 从 Amazon S3 加载文件。 | 
| 22 | 从 Amazon DynamoDB 中加载表。 | 
| 23 | 从远程 SSH 连接中加载数据。 | 
| 24 | 从远程集群（已排序区域）中加载数据。这可用于调整大小。 | 
| 25 | 从远程集群（未排序区域）中加载数据。这可用于调整大小。 | 
| 28 | 在多个表上使用 UNION ALL 从时间序列视图读取数据。 | 
| 29 |  从 Amazon S3 外部表中读取数据。 | 
| 30 | 读取 Amazon S3 外部表的分区信息。 | 
| 33 | 从远程 Postgres 表中读取数据。 | 
| 36 | 从远程 MySQL 表中读取数据。 | 
| 37 | 从远程 Kinesis 流中读取数据。 | 

## 使用说明
<a name="w2aac59c29b9d101c15"></a>

理想情况下，`rows` 应相对接近于 `rows_pre_filter`。`rows` 与 `rows_pre_filter` 之间的一个很大的区别是，它意味着执行引擎将要扫描稍后将被丢弃的行（这样做的效率较低）。`rows_pre_filter` 与 `rows_pre_user_filter` 之间的区别是扫描中虚影行的数量。运行 VACUUM 可移除标记为删除的行。`rows` 与 `rows_pre_user_filter` 之间的区别是查询筛选的行的数量。如果用户筛选器丢弃了大量行，则查看您选择的排序列，或者，如果这是由于大量未排序的区域造成的，请运行 vacuum。

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

以下示例显示 `rows_pre_filter` 大于 `rows_pre_user_filter`，因为该表已删除尚未真空化的行（虚影行）。

```
SELECT query, slice, segment,step,rows, rows_pre_filter, rows_pre_user_filter 
from stl_scan where query = pg_last_query_id();

 query |  slice | segment | step | rows  | rows_pre_filter | rows_pre_user_filter
-------+--------+---------+------+-------+-----------------+----------------------
 42915 |      0 |       0 |    0 | 43159 |           86318 |                43159
 42915 |      0 |       1 |    0 |     1 |               0 |                    0
 42915 |      1 |       0 |    0 | 43091 |           86182 |                43091
 42915 |      1 |       1 |    0 |     1 |               0 |                    0
 42915 |      2 |       0 |    0 | 42778 |           85556 |                42778
 42915 |      2 |       1 |    0 |     1 |               0 |                    0
 42915 |      3 |       0 |    0 | 43428 |           86856 |                43428
 42915 |      3 |       1 |    0 |     1 |               0 |                    0
 42915 |  10000 |       2 |    0 |     4 |               0 |                    0
(9 rows)
```