F.38. pg_freespacemap — examine the free space map | ||||
---|---|---|---|---|
Prev | Up | Appendix F. Additional Supplied Modules and Extensions Shipped inpostgrespro-std-17-contrib | Home | Next |
F.38. pg_freespacemap — examine the free space map#
The By default use is restricted to superusers and roles with privileges of the Returns the amount of free space on the page of the relation, specified by Displays the amount of free space on each page of the relation, according to theFSM. A set of The values stored in the free space map are not exact. They're rounded to precision of 1/256th of For indexes, what is tracked is entirely-unused pages, rather than free space within pages. Therefore, the values are not meaningful, just whether a page is in-use or empty. Original version by Mark Kirkwoodpg_freespacemap
module provides a means for examining thefree space map (FSM). It provides a function calledpg_freespace
, or two overloaded functions, to be precise. The functions show the value recorded in the free space map for a given page, or for all pages in the relation.pg_stat_scan_tables
role. Access may be granted to others usingGRANT
.F.38.1. Functions#
pg_freespace(rel regclass IN, blkno bigint IN) returns int2
blkno
, according to theFSM.pg_freespace(rel regclass IN, blkno OUT bigint, avail OUT int2)
(blkno bigint, avail int2)
tuples is returned, one tuple for each page in the relation.BLCKSZ
(32 bytes with defaultBLCKSZ
), and they're not kept fully up-to-date as tuples are inserted and updated.F.38.2. Sample Output#
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)
F.38.3. Author#
<markir@paradise.net.nz>
. Rewritten in version 8.4 to suit newFSM implementation by Heikki Linnakangas<heikki@enterprisedb.com>