暂无图片
vacuum 中 maintenance_work_mem 很小,不足以一次完成vacuum,需要分多次,是哪个指标判断的?
我来答
分享
暂无图片 匿名用户
vacuum 中 maintenance_work_mem 很小,不足以一次完成vacuum,需要分多次,是哪个指标判断的?

 maintenance_work_mem 很小,不足以一次完成vacuum,需要分多次,是哪个指标判断的?



pg_stat_progress_vacuum 中 那个字段表示vacuum需要循环的次数 ?是index_vacuum_count吗?

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
Maleah

1、如果需要清理的dead tuple 的存放空间大于 maintenance_work_mem,需要多次进行

“不足以一次完成vacuum,需要分多次”这个”多次“具体来说指的应该是清理索引的次数
2、index_vacuum_count 是指 清理索引循环次数


两篇文章可以参考下:

https://mp.weixin.qq.com/s/dyQ-yaUMSqQI8IyzYCGt3g

https://postgrespro.com/blog/pgsql/5967918

暂无图片 评论
暂无图片 有用 1
打赏 0
shunwahⓂ️
2022-12-30
初始化,VACUUM正在准备开始扫描堆。这个阶段应该很简短。 扫描堆, VACUUM正在扫描堆。如果需要,它将会对每个页面进行修建以及碎片整理,并且可能会执行冻结动作。heap_blks_scanned列可以用来监控扫描的进度。 清理索引,VACUUM当前正在清理索引。如果一个表拥有索引,那么每次清理时这个阶段会在堆扫描完成后至少发生一次。如果maintenance_work_mem不足以存放找到的死亡元组,则每次清理时会多次清理索引。 清理堆,VACUUM当前正在清理堆。清理堆与扫描堆不是同一个概念,清理堆发生在每一次清理索引的实例之后。如果heap_blks_scanned小于heap_blks_total,系统将在这个阶段完成之后回去扫描堆;否则,系统将在这个阶段完成后开始清理索引。 清除索引,VACUUM当前正在清除索引。这个阶段发生在堆被完全扫描并且对堆和索引的所有清理都已经完成以后。 截断堆,VACUUM正在截断堆,以便把关系尾部的空页面返还给操作系统。这个阶段发生在清除完索引之后。 执行最后的清除,VACUUM在执行最终的清除。在这个阶段中,VACUUM将清理空闲空间映射、更新pg_class中的统计信息并且将统计信息报告给统计收集器。当这个阶段完成时,VACUUM也就结束了。
suger
2022-12-30
先收藏两篇文章可以参考下: https://mp.weixin.qq.com/s/dyQ-yaUMSqQI8IyzYCGt3g https://postgrespro.com/blog/pgsql/5967918
回答交流
Markdown


请输入正文
提交
相关推荐
pg_dump可以导出创建用户,创建表空间的语句吗?
回答 2
还可以参考下:pgdump子项section的三种开关
PG是我们的gaussdb不?分不清,都一样的命令
回答 2
已采纳
PG和GaussDB是两个不同的数据库产品。GaussDB是华为公司自主研发的关系型数据库产品,具有高可靠、高性能、高扩展性等特点,适用于大规模的分布式数据库场景。PG(PostgreSQL)是一个开
oracle_fdw无法编译
回答 4
参考下安装需求:较低的版本应该是不支持,上面提示的报错依赖的头文件是postgresqldevel里的,你试试用高一点版本的PG吧。
postgreSQL 把表中某个字段的base64码全部update解码,怎么写?
回答 1
可以尝试以下语句来更新表中某个字段的base64码全部解码UPDATEtablenameSETcolumnnamedecode(columnname::text,'base64');其中,tablen
pgpool报错Broken pipe原因是啥
回答 1
根据提供的日志信息,可以得出以下推测:(1)根据日志中的警告和错误信息,进程11091出现了问题,导致与主库的通信异常。具体地说,出现了"writeonbackend0failedwitherror:
plsql可以登陆,进程后台也可以看到,就是不显示界面,可能是什么原因?
回答 2
你说的界面是什么?plsql进去了就是命令行模式。不能\d或者不能select吗?
MySQL有GTID 可以设置复制起点,postgreSQL 有吗?
回答 2
逻辑复制可以通过pgreplicationoriginadvance()函数来设置
pg_upgrade的两者模式有啥区别?
回答 1
1.普通模式和link模式的区别,线上大版本升级通常使用哪种模式,如果数据库很大比如10t,建议采用哪种模式?普通模式:在普通模式下,pgupgrade会将旧版本的数据文件复制到新版本的数据目录中,并
postgresql中对大小写不敏感在哪里配置?
回答 3
如果应用程序需要使用全大写,可以下面修改编译的驱动:PosgreSQL查询返回大写字段
地理数据如何做表分区啊?
回答 2
不需要分区。如果要分大家都是按照时间维度来做。
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~