Une première différence notable, qui peut-être déroutante lorsqu'on ne la connaît pas, est la séparation dans l'ancien attribut query_string
en deux attributs : state
et query
; auparavant, l'état d'une session se lisait en fonction de la valeur de query_string
, et si la valeur était une requête SQL, c'est que la session était active. Désormais, l'attribut state donne l'état réel de la session, et l'attribut query, en fonction de l'état, la requête en cours ou la dernière requête passée.
Il est donc important de tenir compte de l'attribut state pour comprendre précisément ce qui se passe dans l'instance. Et ça n'est qu'un des aspects de cette vue !
Étant donné le nombre d'attributs présents, et la taille variable de l'attribut query
, la lecture des informations retournés par cette vue n'est pas toujours évident. Afin de faciliter cette lecture, j'ai crée la vue suivante :
create view public.activity as select pid, query_start, waiting as w, state, substring(trim(query) from 0 for 50) as query from pg_stat_activity where state <> 'idle' order by query_start ;
Les attributs visibles sont ainsi limités, et dans le cas de l'attribut query
, réduit pour faciliter la lecture ; De plus, les tuples retournés sont triés selon l'heure de début de la requête (attribut query_start
). Et bien-sûr, on ne retourne pas les sessions qui ne sont actives.
Le fait de créer cette vue permet de l'appeler rapidement en cas de besoin, sans devoir aller chercher une documentation, ni retaper toute la requête !
Cette vue public.activity
devient un point de départ pour comprendre le fonctionnement de l'instance.
Qu'en pensez-vous ? Utilisez-vous aussi ce genre de raccourci ? Avez-vous d'autres informations à y mettre ?
1 De dim -
J'utilise beaucoup l'outil pg_activity de nos jours, on le trouve sur https://github.com/julmon/pg_activi...