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 編寫 <markir@paradise.net.nz>。在 8.4 版本中重寫以適應新的FSM實現,由 Heikki Linnakangas 編寫 <heikki@enterprisedb.com>
如果您在文件中發現任何不正確、與您在使用特定功能時的經驗不符或需要進一步說明的內容,請使用 此表單 報告文件問題。