Mehr

Was ist der schnellste Weg, um die älteste, eindeutige Geometrie aus einer Tabelle mit Duplikaten in PostGIS auszuwählen?

Was ist der schnellste Weg, um die älteste, eindeutige Geometrie aus einer Tabelle mit Duplikaten in PostGIS auszuwählen?


Ich habe eine Ausgabe einer ArcPy-Operation arcpy.Union_analysis und für die erstellten Überlappungspolygone muss ich das älteste Feature (zusammen mit den Attributen) auswählen. Das Ergebnis sind 75740 Zeilen.

Normalerweise würde ich einfach verwendenFindIdentical_management, aber ich fand die Ergebnisse für 10.2.2 unzuverlässig (und ich kann die Version, die ich verwende, nicht ändern). Nachdem ich meine eigene in arcpy.da gerollt habe und nicht die gewünschte Leistung erzielt habe, versuche ich, über eine PostGIS-Abfrage auszuwählen, und verwende diese Antwort, um doppelte Geometrie in Postgis-Tabellen als Vorlage zu löschen.

Dies ist zwar eine große Verbesserung, aber ich bin nicht so erfahren mit den Fensterfunktionen von PostGIS + und denke, es könnte einen schnelleren Ansatz geben?

Bisher habe ich:

-- dtime , numerische niedrigere Werte sind älter WITH unique_geoms ( rowid ,geom ) AS ( SELECT row_number() OVER ( PARTITION BY geom ORDER BY dtime ASC ) AS rowid ,geom ,oid ,dtime ,dval FROM x_dupes ) SELECT rowid ,geom , oid ,dtime ,dval FROM unique_geoms WHERE rowid=1;

Erklären: http://explain.depesz.com/s/9cV

"CTE Scan on unique_geoms (cost=10312.46… 12016.61 rows=379 width=104) (actual time=701.221… 2049.404 rows=40389 loops=1)" " Filter: (rowid = 1)" " Vom Filter entfernte Zeilen: 35351" " CTE unique_geoms" " -> WindowAgg (Kosten=8797.66… 10312.46 Zeilen=75740 Breite=154) (tatsächliche Zeit=701.200… 1577.202 Zeilen=75740 Schleifen=1)" " -> Sortieren (Kosten=8797.66… 8987.01 Zeilen=75740 Breite =154) (aktuelle Zeit=701.171… 970.353 Zeilen=75740 Schleifen=1)" " Sortierschlüssel: x_dupes.geom, x_dupes.dtime" " Sortiermethode: quicksort Speicher: 24671kB" " -> Seq Scan on x_dupes (cost=0.00 … 2659,40 Zeilen=75740 Breite=154) (aktuelle Zeit=0,011… 272,713 Zeilen=75740 Schleifen=1)"

http://explain.depesz.com/s/9cV

PostGIS-Version: USE_GEOS=1 USE_PROJ=1 USE_STATS=1


Schau das Video: GTA 5 - Was ist der SCHNELLSTE WEG zu FALLEN?