Postgresql create index,vacuum和cluster进度报告

2023-10-20 13:10

本文主要是介绍Postgresql create index,vacuum和cluster进度报告,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.CREATE INDEX 进度报告

可查看pg_stat_progress_create_index视图,如下
在这里插入图片描述
创建索引可以观察的阶段
在这里插入图片描述
实例:

#建表插入测试数据
hank=> create table tbl_idx_tb01 (a int,b text);
CREATE TABLE
hank=> insert into tbl_idx_tb01 select t,'hank_' ||t from generate_series(1,11000000) t;
INSERT 0 11000000
hank=> create index CONCURRENTLY idx_tb01_a  on tbl_idx_tb01 (a);
CREATE INDEX
hank=> drop index idx_tb01_a;
DROP INDEX
hank=> create index idx_tb01_a  on tbl_idx_tb01 (a);
CREATE INDEX#另外开启一个session,进入数据库观察视图
select * from pg_stat_progress_create_index;
\watch 0.1
Wed 31 Mar 2021 04:56:17 PM CST (every 0.1s)-[ RECORD 1 ]------+---------------------------------------
pid                | 1263
datid              | 16450
datname            | hank
relid              | 16959
index_relid        | 0
command            | CREATE INDEX
phase              | building index: loading tuples in tree
lockers_total      | 0
lockers_done       | 0
current_locker_pid | 0
blocks_total       | 0
blocks_done        | 0
tuples_total       | 11000000
tuples_done        | 11000000
partitions_total   | 0
partitions_done    | 0#通过观察视图可以看到先扫面block然后再扫面的tuples,而且加了CONCURRENTLY,是扫描两次
2.VACUUM进度报告

在做vacuum的时候,可以观察pg_stat_progress_vacuum视图,但是 VACUUM FULL 的时候要看pg_stat_progress_cluster,因为ACUUM FULL和 CLUSTER操作都会重写表。
在这里插入图片描述
vacuum 可以观察到的几个阶段如下:
在这里插入图片描述
实例如下:

#删除数据,做vacuum观察视图
hank=> delete from tbl_idx_tb01;
DELETE 11000000
hank=> \dt+ tbl_idx_tb01List of relationsSchema |     Name     | Type  | Owner |  Size   | Description 
--------+--------------+-------+-------+---------+-------------hank   | tbl_idx_tb01 | table | hank  | 4295 MB | 
(1 row)hank=> vacuum ANALYZE tbl_idx_tb01 ;
VACUUM#另外开启一个session,执行如下语句
select * from pg_stat_progress_vacuum;
\watch 0.1
扫描阶段
Wed 31 Mar 2021 05:09:50 PM CST (every 0.1s)-[ RECORD 1 ]------+--------------
pid                | 1263
datid              | 16450
datname            | hank
relid              | 16959
phase              | scanning heap
heap_blks_total    | 549637
heap_blks_scanned  | 518346
heap_blks_vacuumed | 0
index_vacuum_count | 0
max_dead_tuples    | 89478485
num_dead_tuples    | 6087469
Wed 31 Mar 2021 05:10:00 PM CST (every 0.1s)#vacuuming indexes阶段发生在scanning heap之后,每次vacuum至少发生一次,当maintenance_work_mem 不足以存放dead tuples的时候,会发生多次。
-[ RECORD 1 ]------+------------------
pid                | 1263
datid              | 16450
datname            | hank
relid              | 16959
phase              | vacuuming indexes
heap_blks_total    | 549637
heap_blks_scanned  | 549637
heap_blks_vacuumed | 0
index_vacuum_count | 0
max_dead_tuples    | 89478485
num_dead_tuples    | 11000000
Wed 31 Mar 2021 05:10:31 PM CST (every 0.1s)#清理数据,返回空页给系统
-[ RECORD 1 ]------+----------------
pid                | 1263
datid              | 16450
datname            | hank
relid              | 16959
phase              | truncating heap
heap_blks_total    | 549637
heap_blks_scanned  | 549637
heap_blks_vacuumed | 549637
index_vacuum_count | 1
max_dead_tuples    | 89478485
num_dead_tuples    | 11000000
3.CLUSTER进度报告

当发生 CLUSTER 或者 VACUUM FULL的时候可以观察如下视图
pg_stat_progress_cluster
在这里插入图片描述
cluster和vacuum full阶段介绍如下
在这里插入图片描述
篇幅原因,不再测试。通过以上视图,除了观察内部执行的阶段,还可以估算大概执行到哪一步,还需要多长时间。

参考:https://www.postgresql.org/docs/12/progress-reporting.html

这篇关于Postgresql create index,vacuum和cluster进度报告的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/247284

相关文章

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

浅析CSS 中z - index属性的作用及在什么情况下会失效

《浅析CSS中z-index属性的作用及在什么情况下会失效》z-index属性用于控制元素的堆叠顺序,值越大,元素越显示在上层,它需要元素具有定位属性(如relative、absolute、fi... 目录1. z-index 属性的作用2. z-index 失效的情况2.1 元素没有定位属性2.2 元素处

Ubuntu 22.04 服务器安装部署(nginx+postgresql)

《Ubuntu22.04服务器安装部署(nginx+postgresql)》Ubuntu22.04LTS是迄今为止最好的Ubuntu版本之一,很多linux的应用服务器都是选择的这个版本... 目录是什么让 Ubuntu 22.04 LTS 变得安全?更新了安全包linux 内核改进一、部署环境二、安装系统

Java使用POI-TL和JFreeChart动态生成Word报告

《Java使用POI-TL和JFreeChart动态生成Word报告》本文介绍了使用POI-TL和JFreeChart生成包含动态数据和图表的Word报告的方法,并分享了实际开发中的踩坑经验,通过代码... 目录前言一、需求背景二、方案分析三、 POI-TL + JFreeChart 实现3.1 Maven

对postgresql日期和时间的比较

《对postgresql日期和时间的比较》文章介绍了在数据库中处理日期和时间类型时的一些注意事项,包括如何将字符串转换为日期或时间类型,以及在比较时自动转换的情况,作者建议在使用数据库时,根据具体情况... 目录PostgreSQL日期和时间比较DB里保存到时分秒,需要和年月日比较db里存储date或者ti

PostgreSQL如何查询表结构和索引信息

《PostgreSQL如何查询表结构和索引信息》文章介绍了在PostgreSQL中查询表结构和索引信息的几种方法,包括使用`d`元命令、系统数据字典查询以及使用可视化工具DBeaver... 目录前言使用\d元命令查看表字段信息和索引信息通过系统数据字典查询表结构通过系统数据字典查询索引信息查询所有的表名可

PostgreSQL如何用psql运行SQL文件

《PostgreSQL如何用psql运行SQL文件》文章介绍了两种运行预写好的SQL文件的方式:首先连接数据库后执行,或者直接通过psql命令执行,需要注意的是,文件路径在Linux系统中应使用斜杠/... 目录PostgreSQ编程L用psql运行SQL文件方式一方式二总结PostgreSQL用psql运

【专题】2024飞行汽车技术全景报告合集PDF分享(附原数据表)

原文链接: https://tecdat.cn/?p=37628 6月16日,小鹏汇天旅航者X2在北京大兴国际机场临空经济区完成首飞,这也是小鹏汇天的产品在京津冀地区进行的首次飞行。小鹏汇天方面还表示,公司准备量产,并计划今年四季度开启预售小鹏汇天分体式飞行汽车,探索分体式飞行汽车城际通勤。阅读原文,获取专题报告合集全文,解锁文末271份飞行汽车相关行业研究报告。 据悉,业内人士对飞行汽车行业

计算机毕业设计 大学志愿填报系统 Java+SpringBoot+Vue 前后端分离 文档报告 代码讲解 安装调试

🍊作者:计算机编程-吉哥 🍊简介:专业从事JavaWeb程序开发,微信小程序开发,定制化项目、 源码、代码讲解、文档撰写、ppt制作。做自己喜欢的事,生活就是快乐的。 🍊心愿:点赞 👍 收藏 ⭐评论 📝 🍅 文末获取源码联系 👇🏻 精彩专栏推荐订阅 👇🏻 不然下次找不到哟~Java毕业设计项目~热门选题推荐《1000套》 目录 1.技术选型 2.开发工具 3.功能

PostgreSQL核心功能特性与使用领域及场景分析

PostgreSQL有什么优点? 开源和免费 PostgreSQL是一个开源的数据库管理系统,可以免费使用和修改。这降低了企业的成本,并为开发者提供了一个活跃的社区和丰富的资源。 高度兼容 PostgreSQL支持多种操作系统(如Linux、Windows、macOS等)和编程语言(如C、C++、Java、Python、Ruby等),并提供了多种接口(如JDBC、ODBC、ADO.NET等