您好我想找到所有blob的大小。我总是用这个
SELECT sum(pg_column_size(pg_largeobject)) lob_size FROM pg_largeobject
但是当我的数据库增长~40GB时,这需要几个小时并且加载cpu太多了。
有没有更有效的方法?
答案 0 :(得分:1)
Database Object Management Functions中提到的一些功能可以立即显示整个表格。
我建议pg_table_size(regclass)
定义为:
指定表使用的磁盘空间,不包括索引(但是 包括TOAST,自由空间地图和能见度图)
它与sum(pg_column_size(tablename)) FROM tablename
不同,因为它计算整个页面,因此包括行之间的填充,死行(更新或删除但未重用)和行标题。