requête plus rapide avec une table distante

From: Dominique Vallée <dominique(dot)vallee(at)mnhn(dot)fr>
To: pgsql-fr-generale(at)postgresql(dot)org
Subject: requête plus rapide avec une table distante
Date: 2015-03-25 16:17:55
Message-ID: 5512DFB3.4010806@mnhn.fr
Views: Whole Thread | Raw Message | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

Bonjour,

Je suis confrontée à une situation que je ne comprends pas du tout :
l'exécution d'une même requête lancée sur une table distante est 20 fois
plus rapide que sur la même table mais locale.

Sur un serveur postgres 9.4.1, j'ai 2 bases spatialisées b1 (de taille
5.4 Go) et b2 (de taille 19Mo).
Dans la base b1, une table tmp_obs_coordgps (61 Mo, 502982 lignes).

Quand je fais une jointure de cette table tmp_obs_coordgps avec une
foreign table fao_areas (table de b2), j'obtiens des performances bien
meilleures qu'avec une table locale fao_aires_local (de b1) a priori
identique (créée avec un select * from fao_areas ou en utilisant un
pg_dump, le résultat est le même)

Je donne les liens des explain analyze pour les 2 requêtes :
table distante fao_areas : http://explain.depesz.com/s/4hO
select count(*) from tmp_obs_coordgps o, fao_areas f where
o.code_fao=f.f_code and st_contains(f.the_geom, o.geom);

table locale fao_aires_local : http://explain.depesz.com/s/BvDb
select count(*) from tmp_obs_coordgps o, fao_aires_local f where
o.code_fao=f.f_code and st_contains(f.the_geom, o.geom);

J'ai remarqué que le "width" annoncé pour les tables fao_areas et
fao_aires_local sont différentes : 548 et 26336.
Pourtant, pg_stats renvoie la même chose sur les 2 tables chacune dans
ces bases.

Merci à l'avance si quelqu'un peut me donner une piste d'explication.

Dominique Vallée

PS : j'ai posté mon interrogation sur le forum optimisation pour le
moment sans résultat

--
Dominique Vallée
UMS 3468 Bases de données sur la Biodiversité, Ecologie, Environnement et Sociétés (BBEES)
MNHN - Muséum national d'Histoire naturelle
01 40 79 53 70

--
Envoi via la liste pgsql-fr-generale (pgsql-fr-generale(at)postgresql(dot)org)

Responses

Browse pgsql-fr-generale by date

  From Date Subject
Next Message Johann CHARLERY 2015-03-25 16:23:08 Pourriez-vous me désinscrire de la liste de diffusion svp ?
Previous Message Daniel Verite 2015-03-25 15:24:17 Re: Rendre les tables/database en read only