Bonjour,
Je cherche à sélectionner la différence entre deux tables. Chaque table correspond à une zone tampon unie d'un ensemble de points (1 table = 1 seul objet). Ces tables sont lourdes (environ 8 Mo en .tab) et la requête suivante tourne sans fin (toujours rien après une nuit...)
J'ai mis à jour ma table géometry _columns
J'ai ajouté des index sur ces tables (qui doivent servir à rien ? il n'y a qu'un objet...)
ex:
Bref, je ne suis pas un expert en postgis et je ne sais plus trop quoi faire...
J'ai vu sur le net une méthode qui utilise st_difference que sur les objets qui s'intersectent (+ union sur le reste). Visiblement,c'est plus rapide ce qui m'étonne car on ajoute encore une requête complexe.
Pour tester j'aimerai désagréger mon tampon. Quelle fonction utiliser ? Comment sont gérés les objets troués ?
Merci de votre aide.
Je cherche à sélectionner la différence entre deux tables. Chaque table correspond à une zone tampon unie d'un ensemble de points (1 table = 1 seul objet). Ces tables sont lourdes (environ 8 Mo en .tab) et la requête suivante tourne sans fin (toujours rien après une nuit...)
Code:
SELECT st_difference(tb_2.the_geom,tb_1.the_geom)AS the_geom FROM tb_2,tb_1
Code:
INSERT INTO geometry_columns(f_table_catalog,f_table_schema,f_table_name,f_geometry_column,coord_dimension,srid,type) VALUES('','public','tb_1','the_geom','2','2154','MULTIPOLYGON');
ex:
Code:
CREATE INDEX geomtb1 ON tb_1 USING gist (the_geom);
J'ai vu sur le net une méthode qui utilise st_difference que sur les objets qui s'intersectent (+ union sur le reste). Visiblement,c'est plus rapide ce qui m'étonne car on ajoute encore une requête complexe.
Pour tester j'aimerai désagréger mon tampon. Quelle fonction utiliser ? Comment sont gérés les objets troués ?
Merci de votre aide.