Je voudrais rassembler des statistiques sur les requêtes d'exécution les plus élevées dans ma base de données.
Pour cela, j'ai besoin de savoir comment je peux suivre les requêtes afin de pouvoir créer des vues ou des vues matérialisées pour mettre en cache les résultats des requêtes les plus élevées car j'ai une grande base de données.
postgresql
view
materialized-view
mamesaye
la source
la source
Réponses:
Comme quelqu'un l'a dit dans les commentaires, pg_stat_statements est le moyen d'obtenir les statistiques. Mettez ceci dans votre
postgresql.conf
:Exécutez ensuite cette requête:
Après cela, cet exemple de requête (copié à partir des documents liés ci-dessus) vous donnera les statistiques des 5 principales requêtes de toutes les bases de données :
Si vous voulez des résultats pour une seule base de données , vous devez filtrer par
dbid
lequel vous pouvez obtenirpg_database
par nom de base de données. Ajoutez cette clause WHERE à la requête ci-dessus:Vous pouvez également faire une jointure.
Lorsque vous testez cela, il peut être judicieux d'exclure les requêtes dans les tables de statistiques / schémas elles-mêmes, par exemple:
Il existe un tas d'outils gratuits et commerciaux qui peuvent vous aider à visualiser les données.
la source