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