----- Original Message -----
Sent: Tuesday, December 06, 2005 3:44
PM
Subject: [pgsql-fr-generale] Test
performance
Bonjour à tous,
J'ai effectué un petit test de performance de
PostgreSQL 8.1 qui est installé sur machine Windows.
Pour cela j'ai créé un table comme ceci :
CREATE TABLE benchmark1
(
id int4 NOT NULL,
key1 varchar(50),
texte varchar(200),
CONSTRAINT benchmark1_pkey PRIMARY KEY (id)
)
WITHOUT
OIDS;
A l'aide d'un script j'ai
inséré 1million d'enregistrement.
Deja
lors de l'insertion j'ai remarqué des lenteurs lors de l'insertion (au bout
d'un certain
nombre, ca devient de plus en plus
lent).
C'est fait par SQL l'insertion
ou d'autre facon? Si c'est par SQL, alors Postgre donne le temps d'insertion
des enregistrements. Vous pouvez executer 1000 000 de requetes consequtives
d'un seul coup et voir le temps d'insertion. Ou bien vous pouvez le faire a
quelques reprises et mesurer l'effet de la scalabilite des differentes
tranches.
Dans certaines situations
l'insertion par le biais de scripte qui fait le cycle donne de pires resultats
que l'utilisation de requetes.
Il y a aussi une difference:
inserrer 1000 000 enregistrements en utilisant une requete et inserrer 1000
000 enregistrements en utilisant 1000 000 requetes.
Mais bon l'insertion n'est pas critique pour
moi, ce qui compte c'est la rapidité lors de la consultation.
Ensuite, j'effectue une requete
comme ceci :
select * from
benchmark1 where key1 like '%"+GetRandomString(40)+"
Pour une requete qui fait la recherche
sur 1000 000 enregistrements sur un champ du type varchar, sans avoir aucune
indexation sur lui et utilisant l'operateur Like, le temps de recherche
accroit!
Je mesure le temps de réponse et en moyenne
(sur une centaine de requete) j'obtient 2,5 secondes pour avoir le
résultat.
Cela me parait excessif
!
Qu'en pensez-vous ?
Est-ce que ma table est "faite" comme il faut ?
Que faudrait-il faire pour augmenter les
performances ?
Merci d'avance de
m'éclairer sur ce point.
Pascal
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
Pascal
Serent
BLM Technologies
Ingénieur Développement Logiciel
Tel : 03 28
33 11 11
Mail :
p(dot)serent(at)blm-technologies(dot)fr
*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*
(Signature
ajoutée par FELICEE)