PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Comment obtenir le plan d'exécution d'une requête en cours d'exécution dans postgresql ?

Attendez, je l'ai fait fonctionner. Dans postgresql.conf, il existe DEUX paramètres pour le préchargement des bibliothèques. Le premier, shared_preload_libraries, ne fonctionnera pas sans redémarrage. MAIS l'autre session_preload_libraries le fera. Alors, éditez le postgresql.conf pour y avoir cette ligne :

session_preload_libraries = 'auto_explain'

Puis rechargez :

pg_ctl reload (or pg_ctlcluster 9.x main reload etc)

Modifiez ensuite la base de données pour l'activer :

alter database smarlowe set auto_explain.log_min_duration=1;

Et ensuite, toutes les nouvelles connexions reçoivent des plans auto_expliqués.

Modifiez la durée au paramètre de millisecondes qui vous convient le mieux.