PostgreSQL
La base de données la plus sophistiquée au monde.

Ouverture de session

Navigation

Contactez-nous

Administration du site :
"equipe chez postgresqlfr point org"

Contact presse :
"fr chez postgresql point org"

Contact association :
"bureau chez postgresqlfr point org"

Questions PostgreSQL :
 IRC :
  serveur irc.freenode.net
  canal #postgresqlfr

Recherche

Accéder aux archives

« Octobre 2008  
Lun Mar Mer Jeu Ven Sam Dim
  2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31  

Syndication

Flux XML

Sondage

Quelle est la version de PostgreSQL la plus répandue sur vos serveurs ?
8.3
10%
8.2
42%
8.1
40%
8.0
2%
7.4
6%
7.3 ou antérieure
0%
Nombre de votes: 48

Temps d'exécution très long

Technique - optimisation | Temps d'exécution très long

Par loezic le 06/09/2006 - 11:21

Bonjour,

J'utilise une table d'environ 1,2 Million d'entrées qui est
utilisée qu'avec SELECT. pour info, une requête de type :

SELECT id, nom, adresse, ville, tel FROM prospect WHERE nom LIKE 'A%' ORDER BY nom;

Sur cette table, j'ai crée un index sur la colonne nom.
Pour vérifier qu'il est bien utilisé, j'ai effectué un EXPLAIN qui le confirme.

Mon problème c'est que sur mon serveur local, j'ai un temps d'exécution
n'excédant pas les 6 secondes, alors que sur mon serveur distant, j'atteint
les 50 secondes minimum.

Les deux serveurs possèdent la même version de postgresql et les mêmes paramètres de configuration.

Après plusieurs tests d'optimisation du serveur, rien ne change.

Si vous avez des idées elles sont le bienvenues. Merci d'avance de votre réponse

Options d'affichage des commentaires

Sélectionnez la méthode d'affichage des commentaires que vous préférez, puis cliquez sur "Sauvegarder les paramètres" pour activer vos changements.

Réseau

sparky/ = 6 Septembre, 2006 - 12:30

Je pense que c'est le réseau qui est lent : le temps que le postmaster reçoive et renvoie le résultat est plus grand à distance qu'en local.

C'est vrai qu'une différence d'un facteur 10 c'est beaucoup.

essaie un ping pour voir


En fait je n’utilise pas vr

loezic/ = 6 Septembre, 2006 - 14:07

En fait je n’utilise pas vraiment le réseau, puisque je me connecte au serveur en ssh puis pour lancer les requêtes, je le fais à partir de psql.
Je ne pense donc pas que le réseau est à voir là dedans, mais je peux me tromper.

Pour infos le ping est en moyenne de 56ms.

Jean-Sylvain LOEZIC


Bonjour pourriez vous lanc

Christophe Chauvet/ = 7 Septembre, 2006 - 08:50

Bonjour

pourriez vous lancer un EXPLAIN PLAN en local puis a distance et nous afficher le résultat ?

Cordialement.

Christophe Chauvet
KrysKool.org


Bonjour, Voici les résul

loezic/ = 7 Septembre, 2006 - 09:26

Bonjour,

Voici les résultats :

EN Loacal

QUERY PLAN
--------------------------------------------------------------------------------------------------------------
Sort (cost=203744.64..203992.68 rows=99218 width=86)
Sort Key: nom
-> Index Scan using prospect_nom_idx on prospect (cost=0.00..191795.38 rows=99218 width=86)
Index Cond: (((nom)::text ~>=~ 'A'::character varying) AND ((nom)::text ~<~ 'B'::character varying))
Filter: ((nom)::text ~~ 'A%'::text)
(5 rows)

EN distant :

QUERY PLAN
--------------------------------------------------------------------------------------------------------------
Sort (cost=115280.90..115423.44 rows=57014 width=80)
Sort Key: nom
-> Index Scan using prospect_nom_idx on prospect (cost=0.00..109060.44 rows=57014 width=80)
Index Cond: (((nom)::text ~>=~ 'A'::character varying) AND ((nom)::text ~<~ 'B'::character varying))
Filter: ((nom)::text ~~ 'A%'::text)
(5 rows)

Jean-Sylvain LOEZIC


Bonjour, La configuration

loezic/ = 8 Septembre, 2006 - 10:17

Bonjour,

La configuration matériel influencerai t’elle le temps d’exécution ?

Pour info, le serveur distant à pour config :

Celeron 2,6 Ghz
Mémoire : 512Mo

Et le serveur local :

P4 2,8 Ghz
Mémoire 1Go

Merci d’avance pour les réponses

Jean-Sylvain LOEZIC


Le matos? Mais oui bien sûr :-)

Jean-Paul Argudo/ = 9 Septembre, 2006 - 12:40

La configuration matériel influencerai t’elle le temps d’exécution ?

Oui, complètement...

D'autant que dans votre cas, vous avez un Celéron d'un côté, réputé pour ses piètres performances (surtout avec des bases de données!). Et de l'autre un P4... faites un cat /proc/cpuinfo, et comparez le "cache size" par exemple... Sachez que le cache processeur est extrêmement important pour les SGBD

Nous poster les paramètres non commentés de votre fichier postgresql.conf serait aussi une bonnée idée.

Cordialement,

--
Jean-Paul ARGUDO
www.dalibo.com


ben oui

sparky/ = 8 Septembre, 2006 - 21:53

Fais aussi un hdparm -Tt /dev/hd... pour voir les performances disques...

:-)


En local : Timing cached r

loezic/ = 11 Septembre, 2006 - 09:17

En local :

Timing cached reads: 3552 MB in 2.00 seconds = 1776.27 MB/sec
Timing buffered disk reads: 170 MB in 3.00 seconds = 56.60 MB/sec

En distant :

Timing buffer-cache reads: 1116 MB in 2.00 seconds = 558.00 MB/sec
Timing buffered disk reads: 12 MB in 3.24 seconds = 3.70 MB/sec

Il y a une grosse difference.

Jean-Sylvain LOEZIC


Maintenant

sparky/ = 11 Septembre, 2006 - 16:18

Tu vas devoir améliorer tes performances disques :

Bonne lecture :-)
http://linuxweblog.com/hdparm


© PostgreSQLFr, tous droits réservés.
Site déclaré à la CNIL sous le numéro 1074678, conformément à la Loi en vigueur.