Optimisation requête plpgsql
Je sollicite votre aide pour l'optimisation d'une requête plpgsql
Cette requête affiche les personnes d'une région avec leur nombre d'enfants.
C'est une requête dynamique et très longue je ne peux pas la mettre sur ce post et je m'en excuse.
Actuellement le temps d'exécution de cette requête est de 2,375 sec avec un affichage par page limité à 10 personnes .
J'ai trouvé ce temps très long. J'ai donc fait un EXPLAIN ANALYSE de cette fonction et voici les résultats.
Code:
Function Scan on fonc_membre_region (cost=0.00..12.50 rows=1000 width=532) (actual time=2378.003..2378.013 rows=10 loops=1)
Si je comprends bien cette analyse, la requête scan 1000 lignes ???
J'ai essayé de comprendre pour quoi et je me suis rendu compte que j'ai un critère sur le nombre d'enfants qui se présente comme ça :
Code:
WHERE membre_nombre_enfant >=0
la requête est plus rapide lorsqu'elle exécute :
Code:
WHERE membre_nombre_enfant =0
ou
Code:
WHERE membre_nombre_enfant =3
ou
Code:
WHERE membre_nombre_enfant >=3
Comment selon vous optimiser la requête quand on utilise un critère ">="
Code:
WHERE membre_nombre_enfant >=0
ou BETWEEN
Code:
WHERE membre_nombre_enfant BETWEEN 0 AND 4
C'est cette fourchette qui est consommatrice de ressource et de temps.
Merci à tous