PostgreSQL pg_stat_progress_vacuum 查看 vacuum 进度
PostgreSQL About 2,180 words说明
pg_stat_progress_vacuum
查看的是vacuum
的进度,不显示vacuum full
的进度。
vacuum full
的进度使用pg_stat_progress_cluster
查看。
SQL
select * from pg_stat_progress_vacuum;
输出
postgres=# select * from pg_stat_progress_vacuum;
pid | datid | datname | relid | phase | heap_blks_total | heap_blks_scanned | heap_blks_vacuumed | index_vacuum_count | max_dead_tuples | num_dead_tuples
-----+-------+----------+-------+---------------+-----------------+-------------------+--------------------+--------------------+-----------------+-----------------
635 | 5 | postgres | 90234 | scanning heap | 3279 | 1008 | 0 | 0 | 954189 | 0
(1 row)
含义
列名 | 类型 | 描述 |
---|---|---|
pid | integer | 后端进程的进程 ID |
datid | oid | 后端连接的数据库的 OID |
datname | name | 后端连接的数据库的名称 |
relid | oid | 正在进行 VACUUM 操作的表的 OID (引用 pg_class.oid ) |
phase | text | 当前 VACUUM 操作的阶段,详见下方的 phase 描述 |
heap_blks_total | bigint | 表中的堆块总数,该值在扫描开始时报告,稍后添加的块无需访问 |
heap_blks_scanned | bigint | 已扫描的堆块数量。由于使用可见性地图优化扫描,有些块会被跳过但仍计入此总数。当扫描完成时该数字等于 heap_blks_total |
heap_blks_vacuumed | bigint | 已清理的堆块数量。除非表没有索引,否则此计数器只在清理堆阶段推进。不包含死元组的块会被跳过,有时计数器会跳跃前进。 |
index_vacuum_count | bigint | 完成的索引 VACUUM 周期的数量 |
max_dead_tuple_bytes | bigint | 基于 maintenance_work_mem,在需要执行索引 VACUUM 周期之前可以存储的死元组数据量 |
dead_tuple_bytes | bigint | 自上次索引 VACUUM 周期以来收集的死元组数据量 |
num_dead_item_ids | bigint | 自上次索引 VACUUM 周期以来收集的死项标识符数量 |
indexes_total | bigint | 将要被 VACUUM 或清理的索引总数,这个值在清理索引阶段或 VACUUM 索引阶段开始时报告 |
indexes_processed | bigint | 已处理的索引数。这个计数器仅在清理索引或 VACUUM 索引阶段推进 |
phase 状态
phase | 含义 |
---|---|
initializing | VACUUM 正在准备开始扫描堆。这一阶段预计会非常短暂 |
scanning heap | VACUUM 正在扫描堆。如果需要,将修剪和整理每一页,并可能执行冻结活动。可以使用 heap_blks_scanned 列来监控扫描进度 |
vacuuming indexes | VACUUM 正在对索引进行清理。如果表有索引,这个阶段会至少发生一次。在按需对索引进行多次清理后,才会返回继续扫描堆。 |
vacuuming heap | VACUUM 正在对堆进行清理。这与扫描堆不同,并且在每一次索引清理之后发生。如果 heap_blks_scanned 小于 heap_blks_total ,系统会在这个阶段后返回继续扫描堆。 |
cleaning up indexes | VACUUM 正在清理索引,这个阶段在堆完全扫描并且所有索引和堆清理完成之后进行。 |
truncating heap | VACUUM 正在截断堆以将空页返回操作系统,这个阶段在索引清理之后进行。 |
performing final cleanup | VACUUM 正在执行最终清理。在这个阶段,VACUUM 会清理空闲空间地图,更新 pg_class 中的统计信息并将统计信息报告给累积统计系统。完成这一阶段后,VACUUM 将结束。 |
官方文档
https://www.postgresql.org/docs/17/progress-reporting.html#VACUUM-PROGRESS-REPORTING
Views: 30 · Posted: 2025-02-20
————        END        ————
Give me a Star, Thanks:)
https://github.com/fendoudebb/LiteNote扫描下方二维码关注公众号和小程序↓↓↓

Loading...