Documentation PostgreSQL 15.15 » Internes » Catalogues système » `pg_statistic_ext`

Précédent | Niveau supérieur | Suivant
53.51. `pg_statistic` | Sommaire | 53.53. `pg_statistic_ext_data`

## 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`.