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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
WHERE membre_nombre_enfant >=0
la requête est plus rapide lorsqu'elle exécute :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
WHERE membre_nombre_enfant =0
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part
WHERE membre_nombre_enfant =3
ou
Code : Sélectionner tout - Visualiser dans une fenêtre à part
WHERE membre_nombre_enfant >=3
Comment selon vous optimiser la requête quand on utilise un critère ">="
Code : Sélectionner tout - Visualiser dans une fenêtre à part
WHERE membre_nombre_enfant >=0
ou BETWEEN
Code : Sélectionner tout - Visualiser dans une fenêtre à part
WHERE membre_nombre_enfant BETWEEN 0 AND 4
C'est cette fourchette qui est consommatrice de ressource et de temps.

Merci à tous