能查询一个数据库中有多少个多版本行吗?
我们想要衡量pg_dump对生产数据库的影响,并在需要时暂停它:它是否创建了太多的多版本行?
谢谢!
能查询一个数据库中有多少个多版本行吗?
我们想要衡量pg_dump对生产数据库的影响,并在需要时暂停它:它是否创建了太多的多版本行?
谢谢!
pg_dump
不会创建任何行版本(也称为 tuples)。
pg_dump
的唯一影响是增加了 I/O 负载和长时间运行的事务。长时间的事务将阻止自动清理程序在转储期间回收死元组。
通常情况下,这并不是什么大问题,除非您的数据库有非常高的写入活动。为了缓解这个问题,您可以创建一个流复制备用服务器,将 max_standby_streaming_delay
设置为大于 pg_dump
的持续时间,并让 pg_dump
在那里运行。
pg_stat_all_tables
中的n_dead_tup
来衡量其影响。 - Laurenz Albe