43.27. pg_statistic

Le catalogue pg_statistic stocke des donn�es statistiques sur le contenu de la base de donn�es. Les entr�es sont cr��es par ANALYZE, puis utilis�es par l'optimiseur de requ�tes. Il y a une entr�e pour chaque colonne de table qui a �t� analys�e. Notez que les donn�es statistiques sont par d�finition des approximations, m�me si elles sont � jour.

Comme des statistiques diff�rentes seront appropri�es pour des types de donn�es diff�rents, pg_statistic est pr�vu pour ne faire qu'un minimum de suppositions sur les types de statistiques qu'il stocke. Seules des statistiques extr�mement g�n�rales (comme les valeurs NULL) ont des colonnes d�di�es. Tout le reste est stock� dans des <<�emplacements�>>, qui sont des groupes de colonnes associ�es dont le contenu est identifi� par un num�ro de code dans l'une des colonnes de l'emplacement. Pour plus d'information, voir src/include/catalog/pg_statistic.h.

pg_statistic ne doit pas �tre lisible par le public car m�me les donn�es statistiques peuvent �tre consid�r�es comme sensibles. (Exemple : les valeurs maximales et minimales d'une colonne de salaire peuvent �tre assez int�ressantes). pg_stats est une vue sur pg_statistic accessible � tous, qui n'expose que les informations sur ces tables qui sont accessibles � l'utilisateur courant.

Tableau 43-27. Colonnes de pg_statistic

NomTypeR�f�rencesDescription
starelidoidpg_class .oidTable � laquelle la colonne d�crite appartient.
staattnumint2pg_attribute .attnumNum�ro de la colonne d�crite.
stanullfracfloat4 Fraction des entr�es de la colonne qui ont une valeur NULL.
stawidthint4 Taille moyenne stock�e des entr�es non nulles.
stadistinctfloat4  Nombre de valeurs distinctes non NULL dans la colonne. Une valeurs positive est le nombre r�el de valeurs distinctes. Une valeur n�gative est le n�gatif d'une fraction du nombre de lignes dans la table (par exemple, une colonne dans laquelle les valeurs apparaissent environ deux fois en moyenne pourrait �tre repr�sent�e par stadistinct = -0.5). Une valeur � z�ro indique que le nombre de valeurs distinctes est inconnu.
stakindNint2  Num�ro de code indiquant quel type de statistiques est stock� dans <<�l'emplacement�>> num�ro N de la ligne de pg_statistic.
staopNoidpg_operator .oid Op�rateur utilis� pour d�river les statistiques stock�es dans <<�l'emplacement�>> num�ro N. Par exemple, un emplacement d'histogramme montrerait l'op�rateur <, qui d�finit l'ordre de tri des donn�es.
stanumbersNfloat4[]  Statistiques num�riques du genre appropri� pour <<�l'emplacement�>> num�ro N ou NULL si le type d'emplacement ne n�cessite pas de valeurs num�riques.
stavaluesNanyarray  Valeurs de donn�es de la colonne du type appropri� pour <<�l'emplacement�>> num�ro N ou NULL si le type d'emplacement ne stocke aucune valeur de donn�es. Chaque valeur d'�l�ment du tableau est en fait du type de donn�es de la colonne sp�cifi�e, si bien qu'il n'y a aucun moyen de d�finir ces colonnes autrement qu'avec le type anyarray (tableau quelconque).