Amazon Redshift
数据库开发人员指南 (API Version 2012-12-01)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。点 击 Getting Started with Amazon AWS to see specific differences applicable to the China (Beijing) Region.

STL_VACUUM

显示已真空化的表的行和数据块统计数据。

该表显示了特定于每个 vacuum 操作开始和完成时的信息,并演示了运行此操作的好处。有关运行该命令的要求的信息,请参阅 VACUUM 命令描述。

此表 仅对超级用户可见。有关更多信息,请参阅 系统表及视图中数据的可见性

表列

列名称 数据类型 描述
userid integer 生成该条目的用户 ID。
xid bigint VACUUM 语句的事务 ID。您可以将此表联接到 STL_QUERY 表以查看为某一给定 VACUUM 事务运行的各个 SQL 语句。如果您将整个数据库真空化,则将在单独的事务中将每个表真空化。
table_id integer 表 ID。
status character(30)

每个表的 VACUUM 操作的状态。可能的值包括:

  • 已启动

  • Started Delete Only

  • Started Delete Only (Sorted >= nn%)

    只为 VACUUM FULL 启动了删除阶段。表的排序程度已达到或超出排序阈值,因此跳过了排序阶段。

  • Started Sort Only

  • Finished

    表完成操作的时间。要了解某一特定表执行 vacuum 操作的时长,可以用特定事务 ID 和表 ID 的“Finished”时间减去“Started”时间。

  • Skipped

    表已完全有序且没有带删除标记的行,因此跳过该表。

  • Skipped (delete only)

    指定了 DELETE ONLY,但没有带删除标记的行,因此跳过该表。

  • Skipped (sort only)

    指定了 SORT ONLY,但表已完全有序,因此跳过该表。

  • Skipped (sort only, sorted>=xx%).

    指定了 SORT ONLY,但表的排序程度已达到或超出排序阈值,因此跳过该表。

有关 VACUUM 排序阈值设置的更多信息,请参阅 VACUUM

rows bigint 表中的行加上仍存储在磁盘上的所有已删除的行(正在等待执行 vacuum 操作)的实际数量。此列显示带有 Started 状态的行开始 vacuum 操作之前的计数以及带有 Finished 状态的行完成 vacuum 操作之后的计数。
sortedrows integer 表中已排序的行的数量。此列显示在“Status”列中具有 Started 状态的行开始 vacuum 操作之前的计数以及在“Status”列中具有 Finished 状态的行完成 vacuum 操作之后的计数。
blocks integer 用于存储 vacuum 操作之前的表数据(带有 Started 状态的行)和 vacuum 操作之后的表数据(Finished 列)的数据块的总数。每个数据块使用 1 MB。
max_merge_partitions integer 此列用于性能分析并表示 vacuum 可在每个合并阶段迭代中为表处理的分区的最大数量。(Vacuum 将未排序的区域分为一个或多个已排序的分区。根据表中的列数和当前的 Amazon Redshift 配置,合并阶段可在一个合并迭代中处理最大数量的分区。如果已排序分区的数量超出了合并分区的最大数量,合并阶段仍将工作,但将需要更多合并迭代。)
eventtime timestamp 当 vacuum 操作开始或完成时。

示例查询

以下查询报告表 108313 的 vacuum 统计数据。此表在一系列插入和删除后已执行 vacuum 操作。

Copy
select xid, table_id, status, rows, sortedrows, blocks, eventtime from stl_vacuum where table_id=108313 order by eventtime; xid | table_id | status | rows | sortedrows | blocks | eventtime -------+----------+----------------------+------------+------------+--------+--------------------- 14294 | 108313 | Started | 1950266199 | 400043488 | 280887 | 2016-05-19 17:36:01 14294 | 108313 | Finished | 600099388 | 600099388 | 88978 | 2016-05-19 18:26:13 15126 | 108313 | Skipped(sorted>=95%) | 600099388 | 600099388 | 88978 | 2016-05-19 18:26:38

在 VACUUM 启动时,表包含了存储在 280,887 个 1 MB 数据块中的 1,950,266,199 个行。在删除阶段(事务 14294)完成后,vacuum 便回收了已删除行的空间。ROWS 列将显示值 400,043,488,而 BLOCKS 列已从 280,887 个减少到 88,978 个。vacuum 回收了 191,909 个磁盘空间数据块 (191.9 GB)。

在排序阶段(事务 15126),vacuum 无法跳过此表,因为行是按排序键顺序插入的。

以下示例显示在大型 INSERT 操作之后,针对 SALES 表(在此示例中为表 110116)的 SORT ONLY vacuum 操作的统计数据:

Copy
vacuum sort only sales; select xid, table_id, status, rows, sortedrows, blocks, eventtime from stl_vacuum order by xid, table_id, eventtime; xid |table_id| status | rows |sortedrows|blocks| eventtime ----+--------+-----------------+-------+----------+------+-------------------- ... 2925| 110116 |Started Sort Only|1379648| 172456 | 132 | 2011-02-24 16:25:21... 2925| 110116 |Finished |1379648| 1379648 | 132 | 2011-02-24 16:26:28...

本页内容: