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 Tue 18 June 2019 23:09

Tonio
Juste Inscrit !
Date d'inscription: 5 Feb 2019
Messages: 6

Postgis: optimiser une requete ST_intersect

Bonsoir à tous,
Je manie de nombreux polygones dans une table disposant des colonnes id, surface et geometry. Je souhaiterais réaliser des opérations d'intersection dans le but de classer mes polygones par département.
Le problème c'est que lorsque j'exécute cette requête:

Code:

SELECT 
    region.nom AS region,
    sum(data.surface) AS surface_polygone,
    count(data.id) AS nb_polygone
    FROM departement
    JOIN data
    ON ST_intersects(data.geom, departement.geom)
    GROUP BY departement

Postgis se lance dans un calcul de requête interminable. J'ai donc supposé que classer 9 millions de polygones dans des départements pourrait se simplifier.
Je suis parti de l'hypothèse suivante: Si je symbolise tous mes polygones par des points issus de la fonction ST_PointOnSurface, alors je disposerais d'une table qui me permettra de réaliser une requête rapide pour faire une intersection de ces points avec mes départements.

Code:

SELECT AddGeometryColumn ('public','data','point_on_surface',2154,'POINT',2);

J’obtiens bien une nouvelle table avec un point pour représenter chacun de mes polygones, cependant surprise lorsque je tente à nouveau ma requête pour intersecter mes points avec mes départements je n’ai pas l’impression d’avoir gagné en temps, on est toujours sur un calcul interminable, et pire encore je m’aperçois que projeter mes points sur qgis prend un temps plus long que charger mes polygones.
Je tourne un peu en rond et je dois passer à côté de quelque chose j'imagine.
Est-ce que quelqu’un pourrait me conseiller ?
Je vous remercie d’avance pour votre aide

Hors ligne

 

#2 Wed 19 June 2019 10:19

Nicolas Ribot
Membre
Lieu: Toulouse
Date d'inscription: 9 Sep 2005
Messages: 1534

Re: Postgis: optimiser une requete ST_intersect

Bonjour,

Avez-vous créé des index spatiaux sur les tables que vous utilisez ?

Nicolas

Hors ligne

 

#3 Wed 19 June 2019 12:44

Tonio
Juste Inscrit !
Date d'inscription: 5 Feb 2019
Messages: 6

Re: Postgis: optimiser une requete ST_intersect

Bonjour,

J'avais oublié de créer un index spatial sur la nouvelle table.... effectivement ça va beaucoup mieux maintenant !
merci

Dernière modification par Tonio (Wed 19 June 2019 12:45)

Hors ligne

 

Pied de page des forums

Powered by FluxBB