Pour tuer une requête il y a deux possibilité :

  1. par une commande shell
  2. par une commande sql

 

  • Par la commande shell kill :
    • kill <pid_process>

 /!\ NE JAMAIS FAIRE un kill -9 /!\

  • Par une commande sql :
    • commancer par la commande : select pg_cancel_backend(<pid_process>)
    • si cela n'est pas suffisant passer la commande : select pg_terminate_backend(<pid_process>)

Pour loguer uniquement dans le fichier de log la durée d'une requêtes qui dure plus de x millisecondes , il faut modifier le fichier de configuration postgresql.conf.

Chercher et modifier les valeurs des variables dans postgresql.conf :

  • log_statement = 'none'
  • log_duration = off
  • log_min_duration_statement = <valeur_en_millisecondes>

Exemple pour toutes requêtes supérieures à 4 secondes mettre :

 

log_statement = 'none'

log_duration = off

 

log_min_duration_statement = 4000

Pour une meilleur lisibilité, vou pouvez paramétrer la variable : log_line_prefix

exemples :

  1. log_line_prefix = '%m %d '
  2. log_line_prefix = '%t %d '

Explication des valeurs :

  •  %d : nom de la base de données ,
  • %m : date allant jusqu'à la miliseconde ,
  • %t ; date sans les millisecondes

Ce site est juste une compilation de notes qui sert d'aide mémoire.

Pour ne pas oublier