IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

F.30. pgstattuple

Le module pgstattuple fournit plusieurs fonctions pour obtenir des statistiques au niveau ligne.

F.30.1. Fonctions

pgstattuple(text) returns record

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.

pgstattuple(oid) returns record

Identique à pgstattuple(text), sauf que la relation cible est désignée par son OID.

pgstatindex(text) returns record

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(text) returns bigint

pg_relpages renvoie le nombre de pages dans la relation.

F.30.2. Auteurs

Tatsuo Ishii et Satoshi Nagayasu