PostgreSQLLa base de données la plus sophistiquée au monde.
Documentation PostgreSQL 16.4 » Internes » Catalogues système » pg_statistic_ext

53.52. pg_statistic_ext #

Le catalogue pg_statistic_ext contient des définitions des statistiques étendues pour l'optimiseur de requêtes. Chaque ligne de ce catalogue correspond à un objet statistique créé avec CREATE STATISTICS.

Normalement, il existe un enregistrement, avec stxdinherit = false, pour chaque objet statistique qui a été analysé. Si la table a un fils dans un héritage ou une partition, un deuxième enregistrelent avec stxdinherit = true est aussi créé. Cette ligne représente l'objet statistique dansl'arbre d'héritage, par exemple les statistiques pour les données que vous verriez avec SELECT * FROM table*, alors qu'une ligne stxdinherit = false représente le résultat de SELECT * FROM ONLY table.

Tout comme pg_statistic, pg_statistic_ext_data ne doit pas être lisible par tout le monde car son contenu peut être considéré comme sensible. (Par exemple, les combinaisons de valeurs les plus communes des colonnes pourraient être intéressantes.) pg_stats_ext est une vue, lisible par tout le monde, interrogeant pg_statistic_ext (après une jointure sur pg_statistic_ext) en exposant uniquement les informations sur les tables dont l'utilisateur courant est le propriétaire.

Tableau 53.52. Colonnes de pg_statistic_ext

Type

Description

oid oid

Identifiant de ligne

stxrelid oid (référence pg_class.oid)

Table contenant les colonnes décrites par cet objet

stxname name

Nom de l'objet statistique

stxnamespace oid (référence pg_namespace.oid)

OID du schéma contenant l'objet statistique

stxowner oid (référence pg_authid.oid)

Propriétaire de l'objet statistique

stxstattarget int4

stxstattarget contrôle le niveau de détail des statistiques accumulées pour cet objet statistique par ANALYZE. Une valeur zéro indique qu'aucune statistique ne doit être récupérée. Une valeur négative indique d'utiliser le maximum des cibles statistiques des colonnes référencées, si elles sont configurés, ou la cible par défaut du système. Les valeurs positives de stxstattarget déterminent le nombre cible de « valeurs les plus communes » à récupérer.

stxkeys int2vector (référence pg_attribute.attnum)

Un tableau de numéros de colonnes, indiquant les colonnes de la table couvertes par l'objet statistique ; par exemple, une valeur 1 3 signifierait que les première et troisième colonnes de la table sont couvertes

stxkind char[]

Un tableau contenant des codes pour les types statistiques activés ; les valeurs valides sont : d pour des statistiques n-distinct, f pour des statistiques de dépendance fonctionnelle, m pour des statistiques sur les valeurs les plus communes (most common values ou MCV) et e pour des statistiques sur des expressions

stxexprs pg_node_tree

Arbres d'expression (dans la représentation nodeToString()) pour les attributs des objets statistiques qui ne sont pas de simples références de colonnes. C'est une liste avec une un élément par expression. Null si tous les attributs des objets statistiques sont des références simples.


Un enregistrement de pg_statistic_ext est rempli complètement lors du CREATE STATISTICS, mais les vraies valeurs statistiques ne sont pas calculées à ce moment-là. Les commandes ANALYZE ultérieures calculent les valeurs souhaitées et peuplent l'enregistrement dans pg_statistic_ext_data.