Saya mencoba menjalankan operasi 'bubar' di PostGIS menggunakan perintah ST_Union.
Lapisan input diakui cukup besar dan kompleks. Maksudnya 'besar' adalah 57.771 fitur, dengan jumlah simpul mulai dari 4 hingga 758.018 per fitur, rata-rata sekitar 86 simpul per fitur. Hanya sekitar 10 fitur yang memiliki> 10.000 simpul. Maksudnya 'kompleks' yang saya maksud adalah poligon memiliki banyak lubang, tumpang tindih yang berantakan, pulau, dll. Dan bahwa poligon besar cenderung memiliki kotak pembatas yang menutupi banyak poligon yang lebih kecil, mungkin indeks render kurang berguna.
Masalahnya adalah bahwa permintaan sangat lambat sampai tidak dapat digunakan lagi. Saya membaca posting Paul 2009 di sini yang membuat saya percaya bahwa permintaan saya masih harus cukup cepat. Saya menggunakan perintah berikut; apakah saya melakukan sesuatu yang salah atau tidak efisien?
SELECT ST_Union(f.geom) as geom, column1,column2,column3
FROM "inputlayer" As f
GROUP BY column1,column2,column3
Sunting: Saya menggunakan:
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
Mesin yang saya jalankan di server db adalah mesin virtual tanpa banyak daya. Saya akan mencoba SET work_mem = 50000 ide dan melihat bagaimana hasilnya!