Requête sql pour trouver les requêtes (actives ou inactive) qui tourne depuis plus d'une heure.

Possibilité d'adapter la requete pur changer la duré et de filtrer sur les requêtes actives ou inactive

Requête générique :

select pid, client_addr, client_port, (now()-query_start)duration ,state from pg_stat_activity where (now()-query_start) > '1 hour' order by query_start desc ;

select pid, client_addr, application_name, (now()-query_start)duration ,state from pg_stat_activity where (now()-query_start) > '1 hour' order by query_start desc ;

Pour filtrer ajouter la condition where .... and state='idle' pour filtrer les requêtes inactives , where .... and state='active' pour filtrer les requêtes actives :

select pid, client_addr, client_port, (now()-query_start)duration ,state from pg_stat_activity where (now()-query_start) > '1 hour' and state='idle'  order by query_start desc ;

select pid, client_addr, client_port, (now()-query_start)duration ,state from pg_stat_activity where (now()-query_start) > '1 hour' and state='active'  order by query_start desc ;

Modifier la requête pour avoir le nombre de requêtes de plus d' 1 heure à moduler avec les conditions active / idle:

select count(pid) from pg_stat_activity where (now()-query_start) > '1 hour';