pg_stat_progress_vacuum
VACUUM 操作的进度报告视图
pg_stat_progress_vacuum 是一个进度报告视图,它提供有关 VACUUM 操作(无论是通过 VACUUM 命令手动触发还是通过 autovacuum 自动触发)进度的信息。
pg_stat_progress_vacuum 在 PostgreSQL 9.6 中引入。
用法
pg_stat_progress_vacuum 将为当前正在进行的每个 VACUUM 操作包含一行,并且随着操作的进行而更新。当前阶段在 phase 字段中报告,并将是以下值之一:
initializingscanning heapvacuuming indexesvacuuming heapcleaning up indexestruncating heapperforming final cleanup
有关每个阶段的更多详细信息,请参阅 PostgreSQL 文档中的 VACUUM Phases 表。
列 delay_time(PostgreSQL 18 及更高版本)仅在 track_cost_delay_timing 设置为 on 时更新。
VACUUM FULL
请注意,VACUUM FULL 的进度是通过 pg_stat_progress_cluster 视图报告的。
按 PostgreSQL 版本定义
pg_stat_progress_vacuum (PostgreSQL 19)
View "pg_catalog.pg_stat_progress_vacuum"
Column | Type | Collation | Nullable | Default
----------------------+------------------+-----------+----------+---------
pid | integer | | |
datid | oid | | |
datname | name | | |
relid | oid | | |
phase | text | | |
heap_blks_total | bigint | | |
heap_blks_scanned | bigint | | |
heap_blks_vacuumed | bigint | | |
index_vacuum_count | bigint | | |
max_dead_tuple_bytes | bigint | | |
dead_tuple_bytes | bigint | | |
num_dead_item_ids | bigint | | |
indexes_total | bigint | | |
indexes_processed | bigint | | |
delay_time | double precision | | |
pg_stat_progress_vacuum (PostgreSQL 18)
View "pg_catalog.pg_stat_progress_vacuum"
Column | Type | Collation | Nullable | Default
----------------------+------------------+-----------+----------+---------
pid | integer | | |
datid | oid | | |
datname | name | | |
relid | oid | | |
phase | text | | |
heap_blks_total | bigint | | |
heap_blks_scanned | bigint | | |
heap_blks_vacuumed | bigint | | |
index_vacuum_count | bigint | | |
max_dead_tuple_bytes | bigint | | |
dead_tuple_bytes | bigint | | |
num_dead_item_ids | bigint | | |
indexes_total | bigint | | |
indexes_processed | bigint | | |
delay_time | double precision | | |
pg_stat_progress_vacuum (PostgreSQL 17)
View "pg_catalog.pg_stat_progress_vacuum"
Column | Type | Collation | Nullable | Default
----------------------+---------+-----------+----------+---------
pid | integer | | |
datid | oid | | |
datname | name | | |
relid | oid | | |
phase | text | | |
heap_blks_total | bigint | | |
heap_blks_scanned | bigint | | |
heap_blks_vacuumed | bigint | | |
index_vacuum_count | bigint | | |
max_dead_tuple_bytes | bigint | | |
dead_tuple_bytes | bigint | | |
num_dead_item_ids | bigint | | |
indexes_total | bigint | | |
indexes_processed | bigint | | |
pg_stat_progress_vacuum (PostgreSQL 16)
View "pg_catalog.pg_stat_progress_vacuum"
Column | Type | Collation | Nullable | Default
--------------------+---------+-----------+----------+---------
pid | integer | | |
datid | oid | | |
datname | name | | |
relid | oid | | |
phase | text | | |
heap_blks_total | bigint | | |
heap_blks_scanned | bigint | | |
heap_blks_vacuumed | bigint | | |
index_vacuum_count | bigint | | |
max_dead_tuples | bigint | | |
num_dead_tuples | bigint | | |
pg_stat_progress_vacuum (PostgreSQL 15)
View "pg_catalog.pg_stat_progress_vacuum"
Column | Type | Collation | Nullable | Default
--------------------+---------+-----------+----------+---------
pid | integer | | |
datid | oid | | |
datname | name | | |
relid | oid | | |
phase | text | | |
heap_blks_total | bigint | | |
heap_blks_scanned | bigint | | |
heap_blks_vacuumed | bigint | | |
index_vacuum_count | bigint | | |
max_dead_tuples | bigint | | |
num_dead_tuples | bigint | | |
pg_stat_progress_vacuum (PostgreSQL 14)
View "pg_catalog.pg_stat_progress_vacuum"
Column | Type | Collation | Nullable | Default
--------------------+---------+-----------+----------+---------
pid | integer | | |
datid | oid | | |
datname | name | | |
relid | oid | | |
phase | text | | |
heap_blks_total | bigint | | |
heap_blks_scanned | bigint | | |
heap_blks_vacuumed | bigint | | |
index_vacuum_count | bigint | | |
max_dead_tuples | bigint | | |
num_dead_tuples | bigint | | |
pg_stat_progress_vacuum (PostgreSQL 13)
View "pg_catalog.pg_stat_progress_vacuum"
Column | Type | Collation | Nullable | Default
--------------------+---------+-----------+----------+---------
pid | integer | | |
datid | oid | | |
datname | name | | |
relid | oid | | |
phase | text | | |
heap_blks_total | bigint | | |
heap_blks_scanned | bigint | | |
heap_blks_vacuumed | bigint | | |
index_vacuum_count | bigint | | |
max_dead_tuples | bigint | | |
num_dead_tuples | bigint | | |
pg_stat_progress_vacuum (PostgreSQL 12)
View "pg_catalog.pg_stat_progress_vacuum"
Column | Type | Collation | Nullable | Default
--------------------+---------+-----------+----------+---------
pid | integer | | |
datid | oid | | |
datname | name | | |
relid | oid | | |
phase | text | | |
heap_blks_total | bigint | | |
heap_blks_scanned | bigint | | |
heap_blks_vacuumed | bigint | | |
index_vacuum_count | bigint | | |
max_dead_tuples | bigint | | |
num_dead_tuples | bigint | | |
pg_stat_progress_vacuum (PostgreSQL 11)
View "pg_catalog.pg_stat_progress_vacuum"
Column | Type | Collation | Nullable | Default
--------------------+---------+-----------+----------+---------
pid | integer | | |
datid | oid | | |
datname | name | | |
relid | oid | | |
phase | text | | |
heap_blks_total | bigint | | |
heap_blks_scanned | bigint | | |
heap_blks_vacuumed | bigint | | |
index_vacuum_count | bigint | | |
max_dead_tuples | bigint | | |
num_dead_tuples | bigint | | |
pg_stat_progress_vacuum (PostgreSQL 10)
View "pg_catalog.pg_stat_progress_vacuum"
Column | Type | Collation | Nullable | Default
--------------------+---------+-----------+----------+---------
pid | integer | | |
datid | oid | | |
datname | name | | |
relid | oid | | |
phase | text | | |
heap_blks_total | bigint | | |
heap_blks_scanned | bigint | | |
heap_blks_vacuumed | bigint | | |
index_vacuum_count | bigint | | |
max_dead_tuples | bigint | | |
num_dead_tuples | bigint | | |
pg_stat_progress_vacuum (PostgreSQL 9.6)
View "pg_catalog.pg_stat_progress_vacuum"
Column | Type | Modifiers
--------------------+---------+-----------
pid | integer |
datid | oid |
datname | name |
relid | oid |
phase | text |
heap_blks_total | bigint |
heap_blks_scanned | bigint |
heap_blks_vacuumed | bigint |
index_vacuum_count | bigint |
max_dead_tuples | bigint |
num_dead_tuples | bigint |
变更历史
- PostgreSQL 18
- 添加了列
delay_time(提交 bb8dff99)
- 添加了列
- PostgreSQL 17
- PostgreSQL 9.6
- 添加(提交 c16dc1ac)
示例
pg_stat_progress_vacuum 输出示例
postgres=# SELECT * FROM pg_stat_progress_vacuum; -[ RECORD 1 ]------+-------------- pid | 5270 datid | 16389 datname | appdb relid | 16861 phase | scanning heap heap_blks_total | 162719 heap_blks_scanned | 100350 heap_blks_vacuumed | 0 index_vacuum_count | 0 max_dead_tuples | 11184810 num_dead_tuples | 0
参考资料
- PostgreSQL 文档: VACUUM 进度报告
有用链接
- 深入了解 Postgres 统计信息: pg_stat_progress_vacuum - 2017 年 10 月 Alexey Lesovsky / Data Egret 的博客文章
