Progress Reporting
环境
lightdb@lt_test=# select version();
version
-----------------------------------------------------------------------------------------------------------
LightDB 13.8-22.3 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-44), 64-bit
(1 row)
ANALYZE 进度报告
每当ANALYZE运行时,pg_stat_progress_analyze视图将包含当前运行该命令的每个后端的一行。
analyze
另一个会话中:
select * from pg_stat_progress_analyze;\watch 0.1


CREATE INDEX 进度报告
可以通过查看pg_stat_progress_create_index视图。
示例:
#建测试表插入测试数据
create table tmp_idx_lt01 (a int,b text);
insert into tmp_idx_lt01 select t,'lightdb_' ||t from generate_series(1,10000000) t;
# 建索引
create index CONCURRENTLY idx_lt01_a on tmp_idx_lt01 (a);
立刻在另一个会话中执行如下(每0.1秒快速查询):
select * from pg_stat_progress_create_index;\watch 0.1
得到如下状态:





VACUUM 进度报告
做vacuum的时候,可以观察pg_stat_progress_vacuum视图,做 vacuum full 的时候观察pg_stat_progress_cluster视图。
示例:
# 删除数据
delete from tmp_idx_lt01;
\dt+ tmp_idx_lt01;
lightdb@lt_test=# \dt+ tmp_idx_lt01;
List of relations
Schema | Name | Type | Owner | Persistence | Size | Description
--------+--------------+-------+---------+-------------+--------+-------------
public | tmp_idx_lt01 | table | lightdb | permanent | 498 MB |
(1 row)
# 做vacuum
vacuum ANALYZE tmp_idx_lt01;
立刻在另一个会话中执行:
select * from pg_stat_progress_vacuum;\watch 0.1




#清理数据后的表空间
lightdb@lt_test=# \dt+ tmp_idx_lt01;
List of relations
Schema | Name | Type | Owner | Persistence | Size | Description
--------+--------------+-------+---------+-------------+-------+-------------
public | tmp_idx_lt01 | table | lightdb | permanent | 24 kB |
(1 row)
CLUSTER 进度报告
每当cluster或vacumm full运行时,pg_stat_progress_cluster视图将包含当前正在运行的每一个后台的记录。
以vacumm full为例:
insert into tmp_idx_lt01 select t,'lightdb_' ||t from generate_series(1,10000000) t;
# 删除数据
delete from tmp_idx_lt01;
vacuum full tmp_idx_lt01;
立刻在另一个会话中执行:
select * from pg_stat_progress_cluster;\watch 0.1

本文介绍了如何在LightDB环境中实时监控ANALYZE、CREATE INDEX、VACUUM和CLUSTER等数据库操作的进度。通过pg_stat_progress_视图,用户可以在不同会话中观察这些操作的状态,以了解数据库维护任务的执行情况。
1346

被折叠的 条评论
为什么被折叠?



