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

Printemps des cartes 2024

#1 Mon 09 October 2017 09:53

ChristopheV
Membre
Lieu: Ajaccio
Date d'inscription: 7 Sep 2005
Messages: 3169
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