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