| Documentation PostgreSQL 9.4.26 > Annexes > Modules supplémentaires fournis > pg_freespacemap | |
pgcrypto
|
pg_prewarm
|
Le module pg_freespacemap fournit un moyen pour examiner la carte des espaces libres (free space map, FSM). Il fournit une fonction appelée pg_freespace, ou plutôt deux fonctions qui se surchargent. Les fonctions indiquent la valeur enregistrée dans la carte des espaces libres pour une page donnée ou pour toutes les pages de la relation.
Par défaut, l'accès publique est refusé pour ces fonctions, au cas il y aurait des problèmes de sécurité.
Renvoit la quantité d'espace libre dans la page de la relation, spécifiée par blkno, suivant la FSM.
Affiche la quantité d'espace libre sur chaque page de la relation suivant la FSM. Un ensemble de lignes du type (blkno bigint, avail int2) est renvoyé, une ligne pour chaque page de la relation.
Les valeurs stockées dans la carte des espaces libres ne sont pas exactes. Elles sont arrondies à une précision de 1/256th du BLCKSZ (32 octets pour un BLCKSZ par défaut), et elles ne sont pas mises à jour complètement car des lignes sont insérées et mises à jour.
Pour les index, ne sont tracées que les pages entièrement inutilisées, et non pas les pages ayant un peu d'espace vide. Du coup, les valeurs ne sont pas significatives. Elles indiquent simplement si la page est remplie ou vide.
Note : l'interface a été modifiée en 8.4 pour refléter la nouvelle implémentation de la FSM introduite dans cette version.
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)
Version originale par Mark Kirkwood <markir@paradise.net.nz>. Ré-écrit en version 8.4 pour s'adapter à la nouvelle implémentation de la FSM par Heikki Linnakangas <heikki@enterprisedb.com>

