Ces paramètres contrôlent la collecte de statistiques de niveau serveur.
Lorsque celle-ci est activée, les données produites peuvent être
visualisées à travers la
famille de vues systèmes pg_stat
et
pg_statio
. On peut se reporter à
Chapitre 28 pour plus d'informations.
track_activities
(boolean
)
Active la collecte d'informations sur la commande en cours d'exécution dans
chaque session, avec son identifiant et l'heure de démarrage de la
commande. Ce paramètre est activé par défaut. Même si le paramètre est
activé, cette information n'est pas visible par tous les utilisateurs, mais
uniquement par les super-utilisateurs, les rôles membres du rôle
pg_read_all_stats
et l'utilisateur possédant les
sessions indiquées (ceci incluant les sessions appartenant à un rôle dont
ils possèdent les droits) traitée ; de ce fait, cela ne représente pas
une faille de sécurité. Seuls les super-utilisateurs peuvent modifier ce
paramètre.
track_activity_query_size
(integer
)
Indique la quantité de mémoire réservée pour enregistrer le texte de la
commande en cours d'exécution pour chaque session active, pour le champ
pg_stat_activity
.query
.
Si cette valeur est spécifiée sans unité, elle est comprise comme un
nombre d'octets. La valeur par défaut est 1024 octets. Ce paramètre peut
seulement être configuré au démarrage du serveur.
track_counts
(boolean
)Active la récupération de statistiques sur l'activité de la base de données. Ce paramètre est activé par défaut car le processus autovacuum utilise les informations ainsi récupérées. Seuls les super-utilisateurs peuvent modifier ce paramètre.
track_io_timing
(boolean
)
Active le chronométrage des appels d'entrées/sorties de la base de
données. Ce paramètre est désactivé par défaut car il demandera sans
cesse l'heure courante au système d'exploitation, ce qui peut causer
une surcharge significative sur certaines plateformes. Vous pouvez
utiliser l'outil pg_test_timing pour mesurer la surcharge
causée par le chronométrage sur votre système. Les informations de
chronométrage des entrées/sorties sont affichées dans
pg_stat_database
, dans la sortie de
EXPLAIN quand l'option BUFFERS
est utilisée, by autovacuum for auto-vacuums and auto-analyzes, when
log_autovacuum_min_duration is set and by
pg_stat_statements. Only superusers can change this
setting.
track_wal_io_timing
(boolean
)
Active le chronométrage des I/O pour les journaux de transactions. Ce
paramètre est désactivé par défaut car il implique de nombreux appels
supplémentaires au système d'exploitation, ce qui peut être consommateur
de ressources pour la plateforme. Vous pouvez utiliser l'outil
pg_test_timing pour mesurer la surcharge du
chronométrage sur votre système. Les informations de chronométrage des
I/O sont disponibles dans la vue pg_stat_wal
.
Seuls les super-utilisateurs peuvent modifier ce paramètre.
track_functions
(enum
)
Active le suivi du nombre et de la durée des appels aux fonctions.
Précisez pl
pour ne tracer que les fonctions
de langages procéduraux, ou all
pour suivre aussi
les fonctions SQL et C. La valeur par défaut est none
,
qui désactive le suivi des statistiques de fonctions.
Seuls les super-utilisateurs peuvent modifier ce paramètre.
Les fonctions en langage SQL qui sont assez simples pour être « inlined », c'est à dire substituées dans le code de la requête appelante, ne seront pas suivies, quelle que soit la valeur de ce paramètre.
stats_temp_directory
(string
)
Précise le répertoire dans lequel stocker les données temporaires
de statistiques. Cela peut être un chemin relatif au répertoire de
données ou un chemin absolu. La valeur par défaut est
pg_stat_tmp
. Faire pointer ceci vers un système
de fichiers mémoire diminuera les entrées/sorties physiques et peut
améliorer les performances.
Ce paramètre ne peut être positionné que dans le fichier
postgresql.conf
ou sur la ligne de commande.
compute_query_id
(enum
)
Active le calcul des identifiants de requête. Les identifiants de requête
sont disponibles dans la vue pg_stat_activity
,
en utilisant EXPLAIN
, ou dans les traces de
PostgreSQL si cela a été configuré avec le paramètre log_line_prefix. L'extension pg_stat_statements nécessite aussi un identifiant de requête.
Notez bien qu'un module externe peut être une alternative acceptable
pour calculer un identifiant de requête. Dans ce cas, pensez à
désactiver le calcul automatique des identifiants de requête par
PostgreSQL. Les valeurs acceptées pour ce paramètre sont
off
(toujours désactivé), on
(toujours activé), auto
qui permet à des modules
externes comme pg_stat_statements de l'activer
automatiquement, et regress
qui a le même effet que
auto
, sauf que l'identifiant de requête n'est pas
affiché dans la sortie EXPLAIN
pour faciliter les
tests de régression automatisés. La valeur par défaut est auto
.
Pour garantir qu'un seul identifiant de requête soit généré et affiché, les extensions qui génèrent des identifiants de requête doivent lever une erreur si un identifiant de requête a déjà été généré pour une requête.
log_statement_stats
(boolean
)log_parser_stats
(boolean
)log_planner_stats
(boolean
)log_executor_stats
(boolean
)
Écrivent, pour chaque requête, les statistiques de performance du
module respectif dans les traces du serveur. C'est un outil de
profilage très simpliste, similaire aux possibilités de l'appel
getrusage()
du système d'exploitation Unix.
log_statement_stats
rapporte les statistiques
d'instructions globales, tandis que les autres fournissent un rapport
par module. log_statement_stats
ne peut pas être
activé conjointement à une option de module. Par défaut, toutes ces
options sont désactivées. Seuls les super-utilisateurs peuvent modifier
ces paramètres.