Suite

Supprimer les entités polygonales d'une couche en dehors de l'entité surfacique d'une autre couche dans PostGIS


Pour supprimer des entités polygonales dans une couche (~ 1000000 entités) en dehors de l'entité surfacique d'une autre couche (une entité) dans PostGIS, j'utilise la requête :

DELETE FROM layer WHERE layer.id IN (SELECT a.id FROM couche a, limite b WHERE ST_Disjoint(a.geom, b.geom));

Maintenant, le processus prend plus de 6 heures. Comment puis-je accélérer le processus de suppression d'entités à grand nombre d'une couche à l'extérieur d'une entité dans une autre couche ?


J'ai d'abord mal utilisé… merci @Vince pour les conseils. Maintenant, j'essaie d'interroger comme

CREATE TABLE layer_new AS SELECT a.* FROM couche a, limite b WHERE ST_Intersects(a.geom, b.geom);

ça marche bien. 232527 lignes de 680000 changées en 111 secondes.