Nous utilisons des cookies pour vous garantir la meilleure expérience sur notre site. Si vous continuez à utiliser ce dernier, nous considèrerons que vous acceptez l'utilisation des cookies. J'ai compris ! ou En savoir plus !.
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

Suite à un problème technique intervenu entre le 22 et le 23 mars, nous avons du procéder dans la soirée du 25 mars, à la restauration de la base de données du 24 mars (matinée).

En clair, nous avons perdu vos contributions et inscriptions du dimanche 24 et du lundi 25 mars.
Nous vous prions de nous excuser.

#1 Mon 09 October 2017 09:53

ChristopheV
Membre
Lieu: Ajaccio
Date d'inscription: 7 Sep 2005
Messages: 3162
Site web

Postgis St_Equals index spatial astuce

Bonjour

La fonction st_equals() n'utilise pas toujours les index spatiaux, pour contourner le problème une astuce : ajouter une condition dans la clause WHERE.

Exemple:

Code:

SELECT * FROM a,b WHERE st_equals(a.geom,b.geom)

N'utilise pas l'index gist de la table a

Code:

SELECT * FROM a,b WHERE st_equals(a.geom,b.geom) AND a.geom && b.geom

Utilise l'index spatial

La première requête n'a pas aboutit au bout de 7 minutes, la seconde ne prend que quelques secondes ...


Christophe
L'avantage d'être une île c'est d'être une terre topologiquement close

Hors ligne

 

#2 Mon 09 October 2017 10:52

JP LLORENS
Participant assidu
Date d'inscription: 12 Nov 2008
Messages: 231

Re: Postgis St_Equals index spatial astuce

Bonjour.
Merci pour l'info.
Je pense qu'il y a le même problème avec le st_intersects.
Sur une requête avec st_intersects, la durée est de 510ms si j'intègre l'opérateur "&&" entre les deux géométries, par contre on est à 32 secondes si je l'enlève.
Cordialement
JP

Hors ligne

 

Pied de page des forums

Powered by FluxBB