bonjour/bonsoir,
Je recherche une optimisation miracle avant un changement de matériel plus puissant.
Je voudrais savoir quel paramètre modifier dans la config de postgresql (8.1) pour qu'il consomme plus de mémoire et fasse moins d'accès disque.
En fait j'ai une grosse requête de cette forme :
je n'ai pas écrit la requête entière car c'est impossible ici (elle fait 170Ko dans une fichier texte) mais la partie finale contenant la clause 'ID IN' contient 30000 énumérations (oui je ne plaisante pas).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 select id from sale_order_line where state in ('confirmed','confir_wait','manquant') and (id in (1,2,3....30000))
Le traitement prend 16s, le cpu tourne à 100% et seulement 5% de la mémoire est utilisée). J'ai relevé ces valeurs via la commande TOP sous linux.
donc voilà j'aimerais changer quelques truc dans la config (de base) pour booster cela. Si quelqu'un a une solution miracle (autre que la réécriture du code sql car je n'ai pas la main dessus (c'est un erp)).
merci de votre aide.
infos hardware : pg tourne dans une VM debian etch4, installée sur une machine avec cpu core i7 2.8Ghz, 2Go de RAM accordée à la vm et 2 cores). La VM (fichier 10Go) est sur un ssd bas de gamme.. Pg est installé par défaut, seul le max_stack_deph a été changé et porté à 8096 sinon la requête ne fonctionne pas.
Partager