Tôi đang cố gắng thực hiện thao tác 'hòa tan' trong PostGIS bằng lệnh ST_Union.
Lớp đầu vào được thừa nhận khá lớn và phức tạp. Theo 'lớn', ý tôi là 57.771 tính năng, với số lượng đỉnh dao động từ 4 đến 758.018 mỗi tính năng, trung bình khoảng 86 đỉnh cho mỗi tính năng. Chỉ có khoảng 10 trong số các tính năng có> 10.000 đỉnh. "Phức tạp", ý tôi là các đa giác có nhiều lỗ hổng, chồng chéo lộn xộn, đảo, v.v. và các đa giác lớn có xu hướng có một hộp giới hạn bao gồm nhiều đa giác nhỏ hơn, có lẽ các chỉ số rending ít hữu dụng hơn.
Vấn đề là truy vấn cực kỳ chậm đến mức không thể sử dụng được. Tôi đã đọc bài đăng năm 2009 của Paul ở đây khiến tôi tin rằng truy vấn của tôi vẫn còn khá nhanh. Tôi đang sử dụng lệnh sau; Tôi đang làm điều gì đó trắng trợn hoặc không hiệu quả?
SELECT ST_Union(f.geom) as geom, column1,column2,column3
FROM "inputlayer" As f
GROUP BY column1,column2,column3
Chỉnh sửa: Tôi đang sử dụng:
POSTGIS="2.1.4 r12966" GEOS="3.3.3-CAPI-1.7.4" PROJ="Rel. 4.7.1, 23 September 2009" GDAL="GDAL 2.0.0dev, released 2014/04/16" LIBXML="2.7.8" LIBJSON="UNKNOWN" TOPOLOGY RASTER PostgreSQL 9.3.5 on x86_64-unknown-linux-gnu, compiled by gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3, 64-bit
Máy tôi đang chạy máy chủ db là một máy ảo không có nhiều năng lượng. Tôi sẽ thử ý tưởng SET work_mem = 50000 và xem mọi thứ diễn ra như thế nào!