Projet

Général

Profil

Actions

Bug #1554

fermé

Requêtes sur les mesures à optimiser

Ajouté par Jonathan Schaeffer il y a environ 7 ans. Mis à jour il y a environ 7 ans.

Statut:
Fermé
Priorité:
Haut
Assigné à:
Version cible:
Début:
14/02/2017
Echéance:
% réalisé:

100%

Temps estimé:
Temps passé:

Description

Lorsque la base est peuplée de beaucoup de mesures, alors la requête permettant de récupérer un JSON des mesures d'un paramètres est trop longue.

  1. Mesurer le temps dans la situation actuelle en ayant importé un grand nombre de mesures
  2. Investiguer côté PostgreSQL, à l'aide d'unre requête SELECT de référence
  3. Éliminer les points chauds de la requête par des index ou autres optimisations
  4. Mesurer le gain de performance ainsi obtenu

Dans les logs du serveur de production on peut voir cette ligne qui donne une indication sur la requête SELECT qui est passée :

D, [2017-02-14T15:46:42.037898 #18991] DEBUG -- :   Measure Load (65996.8ms)  SELECT "measures".* FROM "measures" WHERE "measures"."station_id" = $1 AND "measures"."parameter_id" = $2  ORDER BY "measures"."date" ASC  [["station_id", 711], ["parameter_id", 169]]

Postgresql :

- utiliser la commande EXPLAIN : https://www.postgresql.org/docs/9.1/static/sql-explain.html
- ajouter des index : https://www.postgresql.org/docs/9.1/static/indexes.html
- évaluer le coût du tri
- voir si on peut obtenir directement une sortie JSON ? https://dockyard.com/blog/2014/05/27/avoid-rails-when-generating-json-responses-with-postgresql

https://www.postgresql.org/docs/9.3/static/functions-json.html

Actions

Formats disponibles : Atom PDF