PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 05/07/2012 10:57:56

gglamenace
Membre

Gerer un compteur du nombre de select par jour et par ligne

Bonjour,

je voudrais ajouter un champ dans une table qui compte le nombre de SELECT par jour pour chaque ligne.
Auriez-vous une methode permettant de faire ceci sans écrouler les performances?
Il y aura en effet un grand nombre de SELECT pour chaque ligne par jour, et donc la gestion du compteur devra être optimisée.

Merci d'avance pour vos réponses!

Jérôme

Hors ligne

#2 05/07/2012 11:12:42

kenrio
Membre

Re : Gerer un compteur du nombre de select par jour et par ligne

Je suis pas sur qu'on puisse, pg_stat_user_tables ne permet de voir que le nombre de lignes insert, update et delete.
Après y a peut etre un autre moyen par postgres.

Perso je l'aurais codé en php, rajouter un compteur sur les selects initiés est plus simple je trouve.

Hors ligne

#3 05/07/2012 11:58:09

gglamenace
Membre

Re : Gerer un compteur du nombre de select par jour et par ligne

Pour le coder en PHP j'aurais besoin d'utiliser une zone memoire, genre memcached ou autre pour stocker les compteurs par ligne et régulierement mettre à jour les compteurs en base.
Un peu plus complexe mais surement plus efficace que faire des UPDATE/INSERT à chaque select pour incrémenter le compteur...

kenrio a écrit :

Je suis pas sur qu'on puisse, pg_stat_user_tables ne permet de voir que le nombre de lignes insert, update et delete.
Après y a peut etre un autre moyen par postgres.

Perso je l'aurais codé en php, rajouter un compteur sur les selects initiés est plus simple je trouve.

Hors ligne

#4 05/07/2012 22:10:21

gleu
Administrateur

Re : Gerer un compteur du nombre de select par jour et par ligne

PostgreSQL ne comptabilise pas le nombre de SELECT réalisés sur les tables. Il n'est pas non plus possible d'ajouter un trigger sur les SELECT. La règle sur les SELECT ne fonctionne que sur les vues. Bref, vous allez devoir coder ça au niveau applicatif.


Guillaume.

Hors ligne

#5 06/07/2012 11:37:29

flo
Membre

Re : Gerer un compteur du nombre de select par jour et par ligne

Et en travaillant sur les logs? (en loguant tous les ordres SQL et en passant dessus un script ou un programme)
La difficulté que je vois ce sera le volume de log généré (suivant l'activité de la base) et comment gérer les compteurs et les fichiers de log pour ne pas relire à chaque fois les fichiers.

Mais sinon, au niveau applicatif, si c'est possible c'est sans doute le plus simple (si une seule application, et qu'il y a une couche d'accès qui va bien)

Hors ligne

Pied de page des forums