Documentation PostgreSQL 16.14 » Annexes » Modules et extensions supplémentaires fournis » pg_freespacemap -- examiner la carte des espaces libres

Précédent Niveau supérieur Suivant
F.28. pgcrypto -- fonctions de chiffrement Sommaire F.30. pg_prewarm -- précharger les données des relations dans le cache disque de PostgreSQL

F.29. pg_freespacemap -- examiner la carte des espaces libres #

F.29.1. Fonctions
F.29.2. Exemple de sortie
F.29.3. Auteur

Le module pg_freespacemap fournit un moyen d'examiner la carte des espaces libres (FSM). Il fournit une fonction appelée pg_freespace, ou plus précisément 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'utilisation est restreinte aux superutilisateurs et aux rôles disposant des attributs du rôle pg_stat_scan_tables. L'accès peut être accordé à d'autres en utilisant GRANT.

F.29.1. Fonctions #

pg_freespace(rel regclass IN, blkno bigint IN) returns int2

Renvoie la quantité d'espace libre dans la page de la relation, spécifiée par blkno, d'après la FSM.

pg_freespace(rel regclass IN, blkno OUT bigint, avail OUT int2)

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/256e du BLCKSZ (32 octets pour un BLCKSZ par défaut), et elles ne sont pas parfaitement mises à jour quand des lignes sont insérées et mises à jour.

Pour les index, sont tracées les pages entièrement inutilisées, plutôt que l'espace vide au sein des pages. En conséquence, les valeurs ne sont pas significatives. Elles indiquent simplement si la page est en cours d'utilisation ou vide.

F.29.2. Exemple de sortie #

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.29.3. Auteur #

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>

AltStyle によって変換されたページ (->オリジナル) /