Bonjour,
Votre SELECT va utiliser la méthode seq
scan ( sequential scan ), ce qu’il vous faut, c’est un index,
pour s’en convaincre, faite un EXPLAIN
EXPLAIN select
* from benchmark1 where key1 like '%"+GetRandomString(40)+"
>> ca doit retourner quelque chose comme seq
scan ………………
Pour créer l’index :
CREATE INDEX idx_benchmark1_key2 ON benchmark1(key2);
Et un petit
VACUUM ANALYZE benchmark1 ;
Pour les insertions, ça doit être a cause
d’une transaction, mettez un COMMIT de temps en temps, genre tous les
1000 enregistrements, pour alléger la charge.
Cordialement,
Damien Griessinger
De : pgsql-fr-generale-owner(at)postgresql(dot)org
[mailto:pgsql-fr-generale-owner(at)postgresql(dot)org] De la part de Pascal SERENT
Envoyé : mardi 6 décembre
2005 14:45
À : pgsql-fr-generale(at)postgresql(dot)org
Objet : [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).
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)+"
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)