Le module pgstattuple fournit plusieurs fonctions pour obtenir des statistiques au niveau ligne.
pgstattuple renvoie la longueur physique d'une relation, le pourcentage des lignes « mortes », et d'autres informations. Ceci peut aider les utilisateurs à déterminer si une opération de VACUUM est nécessaire. L'argument est le nom de la relation cible (qui peut être qualifié par le nom du schéma). Par exemple :
test=> SELECT * FROM pgstattuple('pg_catalog.pg_proc'); -[ RECORD 1 ]------+------- table_len | 458752 tuple_count | 1470 tuple_len | 438896 tuple_percent | 95.67 dead_tuple_count | 11 dead_tuple_len | 3157 dead_tuple_percent | 0.69 free_space | 8932 free_percent | 1.95
Les colonnes en sortie sont décrites dans Tableau F.21, « Colonnes de pgstattuple ».
Tableau F.21. Colonnes de pgstattuple
Colonne | Type | Description |
---|---|---|
table_len | bigint | Longueur physique de la relation en octets |
tuple_count | bigint | Nombre de lignes vivantes |
tuple_len | bigint | Longueur totale des lignes vivantes en octets |
tuple_percent | float8 | Pourcentage des lignes vivantes |
dead_tuple_count | bigint | Nombre de lignes mortes |
dead_tuple_len | bigint | Longueur totale des lignes mortes en octets |
dead_tuple_percent | float8 | Pourcentage des lignes mortes |
free_space | bigint | Espace libre total en octets |
free_percent | float8 | Pourcentage de l'espace libre |
pgstattuple acquiert seulement un verrou en lecture sur la relation. Donc les relations ne reflètent pas une image instantanée des mises à jour en parallèle peuvent les affecter.
pgstattuple juge qu'une ligne est « morte » si HeapTupleSatisfiesNow renvoie false.
Identique à pgstattuple(text), sauf que la relation cible est désignée par son OID.
pgstatindex renvoie un enregistrement affichant des informations sur un index B-Tree. Par exemple :
test=> SELECT * FROM pgstatindex('pg_cast_oid_index'); -[ RECORD 1 ]------+------ version | 2 tree_level | 0 index_size | 8192 root_block_no | 1 internal_pages | 0 leaf_pages | 1 empty_pages | 0 deleted_pages | 0 avg_leaf_density | 50.27 leaf_fragmentation | 0
En voici les colonnes:
Colonne | Type | Description |
---|---|---|
version | integer | Numéro de version du B-tree |
tree_level | integer | Niveau de l'arbre pour la page racine |
index_size | bigint | Nombre total de page dans l'index |
root_block_no | bigint | Enmplacement du bloc racine |
internal_pages | bigint | Nombre de pages « internes » (niveau supérieur) |
leaf_pages | bigint | Nombre de pages feuilles |
empty_pages | bigint | Nombre de pages vides |
deleted_pages | bigint | Nombre de pages supprimées |
avg_leaf_density | float8 | Densité moyenne des pages feuilles |
leaf_fragmentation | float8 | Fragmentation des pages feuilles |
Comme pour pgstattuple, les résultats sont accumulés page par page, et ne représentent pas forcément une image instantannée de l'index complet.
pg_relpages renvoie le nombre de pages dans la relation.
Tatsuo Ishii et Satoshi Nagayasu