banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

GEODATA DAYS 2024

#1 Fri 05 March 2010 09:45

michCarto
Participant actif
Date d'inscription: 8 Sep 2009
Messages: 105

Optimiszation de cette requete

Bonjour
Comment puis je optimisé cette requete

Code:

SELECT p1.the_geom from 
infoparcelle as p1,
infoparcelle  as p2
WHERE     
    expand(setsrid(box2d(p1.the_geom),27582),100)&& p2.the_geom
and 
    intersects(expand(setsrid(box2d(p1.the_geom),27582),100),p2.the_geom)

and    p1.id_insee='84000' 
and    p2.id_insee='84000'

merci

Hors ligne

 

#2 Fri 05 March 2010 09:54

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9860
Site web

Re: Optimiszation de cette requete

Bonjour,

En utilisant st_intersects() qui utilisera des index spatiaux. Telle qu'écrites actuellement ta requête n'en utilise pas.

Ajouter des index sur id_insee pour tes deux tables.

Lancer un EXPLAIN ANALYZE sur ta requête et regarder là où cela coince.

Configurer postgresql pour augmenter la mémoire utilisée qui est généralement à un niveau minimale.

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#3 Fri 05 March 2010 09:59

michCarto
Participant actif
Date d'inscription: 8 Sep 2009
Messages: 105

Re: Optimiszation de cette requete

je remplace intersects par  st_intersects ?
SELECT p1.the_geom from
infoparcelle as p1,
infoparcelle  as p2
WHERE     
    expand(setsrid(box2d(p1.the_geom),27582),100)&& p2.the_geom
and
    st_intersects(expand(setsrid(box2d(p1.the_geom),27582),100),p2.the_geom)

and    p1.id_insee='84000'
and    p2.id_insee='84000'


"Ajouter des index sur id_insee pour tes deux tables."

puis
CREATE INDEX id_insee_indx on  infoparcelle  (id_insee);

merci de confirmer

Hors ligne

 

#4 Fri 05 March 2010 10:17

Yves
Membre du bureau
Lieu: Aix-les-Bains
Date d'inscription: 22 Mar 2006
Messages: 9860
Site web

Re: Optimiszation de cette requete

Bonjour,

Oui c'est cela. Mais il faut aussi créer les index spatiaux sur les champs géométriques également s'ils n'existent pas.

Y.


Yves Jacolin, bénévole de l'association GeoRezo.net, agit au nom et pour le compte de l'association - Partageons ce qui nous départage !!  - GeoRezo vous aide ? Aidez GeoRezo !

Hors ligne

 

#5 Fri 05 March 2010 10:23

michCarto
Participant actif
Date d'inscription: 8 Sep 2009
Messages: 105

Re: Optimiszation de cette requete

ok  merci beaucoup  en faisant
CREATE INDEX the_geom_indx on  infoparcelle  (the_geom);

merci de confirmer

Hors ligne

 

Pied de page des forums

Powered by FluxBB