该 pg_freespacemap
模块提供了一种检查 空闲空间映射 (FSM)的方法。它提供了一个名为 pg_freespace
的函数,或者更准确地说,是两个重载函数。这些函数显示在空闲空间映射中为给定页面或关系中的所有页面记录的值。
默认情况下,使用权限仅限于超级用户和具有 pg_stat_scan_tables
角色权限的角色。可以使用 GRANT
将访问权限授予其他用户。
存储在空闲空间映射中的值不是精确的。它们四舍五入到 BLCKSZ
的 1/256 精度(默认 BLCKSZ
为 32 字节),并且在插入和更新元组时不会完全保持最新。
对于索引,跟踪的是完全未使用的页面,而不是页面内的空闲空间。因此,这些值没有意义,只是页面是满的还是空的。
postgres=# SELECT * FROM pg_freespace('foo'); blkno | avail -------+------- 0 | 0 1 | 0 2 | 0 3 | 32 4 | 704 5 | 704 6 | 704 7 | 1216 8 | 704 9 | 704 10 | 704 11 | 704 12 | 704 13 | 704 14 | 704 15 | 704 16 | 704 17 | 704 18 | 704 19 | 3648 (20 rows) postgres=# SELECT * FROM pg_freespace('foo', 7); pg_freespace -------------- 1216 (1 row)
最初版本由 Mark Kirkwood <[email protected]>
编写。在 8.4 版本中重写以适应 Heikki Linnakangas <[email protected]>
的新实现FSM。
如果您在文档中看到任何不正确的内容,与您对特定功能的体验不符,或者需要进一步澄清,请使用 此表单 报告文档问题。