Postgres确定所有blob的大小

时间:2014-05-08 14:05:23

标签: postgresql blob

您好我想找到所有blob的大小。我总是用这个

SELECT sum(pg_column_size(pg_largeobject)) lob_size FROM pg_largeobject

但是当我的数据库增长~40GB时,这需要几个小时并且加载cpu太多了。

有没有更有效的方法?

1 个答案:

答案 0 :(得分:1)

Database Object Management Functions中提到的一些功能可以立即显示整个表格。

我建议pg_table_size(regclass)定义为:

  

指定表使用的磁盘空间,不包括索引(但是   包括TOAST,自由空间地图和能见度图)

它与sum(pg_column_size(tablename)) FROM tablename不同,因为它计算整个页面,因此包括行之间的填充,死行(更新或删除但未重用)和行标题。