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

Index

Technique - optimisation | Index

Par moi le 25/04/2008 - 10:53

bonjour,

J'ai 2 tables : table1 et table2. chacune a 40 000 lignes. il y a 4 champs sur chacune des 2 tables.

table1
id_tab1, nom_tab1, date_tab1, desc_tab1

table2
id_tab2, detail_tab2, encoredudetail_tab2, id_tab1

N'étant pas le concepteur des 2 tables, je ne peux qu'ajouter des index (c'est déjà pas mal !!). Il n'y a pas de clé primaire, ni de clé étrangère.
La raison est que les données arrive en brut dans les 2 tables et que les doublons nous interressent.

Si je fais un
select * FROM table1, table2 WHERE table1.id_tab1 = table2.id_tab1

Ca prend beaucoup de temps.

En faisant un explain, on voit bien qu'il y a des reqscan sur les table2.

J'ai créé donc 2 index : un sur table1.id_tab1 et l'autre sur table2.id_tab1.

Je fais un vacuum, et je relance.... Pareil !! Il fait encore des reqscan.

D'où vient le problème ??? Est il possible d'empêcher les reqscan

A+

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