Je suis en train de revoir chaque instruction SQL qu'une application effectue sur la base de données, pour des raisons de performances. Existe-t-il un moyen simple de consigner toutes les instructions exécutées par le serveur de base de données PostgreSQL? Merci.
L'option de configuration que vous recherchez est log_statement = "all"
(si vous voulez juste les instructions), ou log_min_statement_duration = <some number>
si vous êtes juste après des requêtes "lentes" (pour une valeur de "lent"). Voir http://www.postgresql.org/docs/current/static/runtime-config-logging.html pour plus de détails sur la configuration de la journalisation.
Le module auto_explain
Est très utile pour cela. Il enregistrera non seulement les instructions, mais également leurs plans d'exécution et pourra même enregistrer les instructions exécutées dans les fonctions PL/PgSQL. Les performances sont assez faibles, sauf si vous activez l'analyse, auquel cas vous subissez un peu de temps supplémentaire pour toutes les requêtes.
Voir auto_explain
dans la documentation.