Geschwindigkeitsunterschiede zwischen SQL Server 2012 und PostGIS UnionAggregate

8

Es scheint einen massiven Geschwindigkeitsunterschied zwischen PostGIS und SQL Server 2012 mit einer Union-Aggregat-Funktion zu geben.

SELECT geometry::UnionAggregate(the_geom)
FROM loc
GROUP BY LocalityCo

vs.

SELECT ST_Multi(ST_Union(the_geom))
FROM dummydata.loc 
GROUP BY "LocalityCo"

In SQL Server 2012 erhalte ich weniger als eine Sekunde, in PostGIS jedoch ungefähr 25 Sekunden.

Die PostGIS-Version lautet: 1.5 USE_GEOS=1 USE_PROJ=1 USE_STATS=1

Kann ich irgendetwas tun, um die PostGIS-Abfrage zu beschleunigen, oder ist es einfach so?

Hinweis: Beide haben räumliche Indizes.

Nathan W.
quelle
verwandte Frage: gis.stackexchange.com/questions/1387/…
underdark
Auf welchem ​​Setup sind sowohl SQL Server 2012 als auch PostGIS 2.0 installiert?
Mapperz

Antworten:

2

Sie sollten Ihre Postgis-Version wahrscheinlich auf 2.0.1 aktualisieren, einschließlich der neuesten Abhängigkeitsbibliotheken (Geos 3.3, ...), und sie dann erneut testen.

U2ros
quelle
1
Ja, ich habe das getan und ungefähr 15 Sekunden bekommen
Nathan W
1
Das ist eine ziemlich einfache Abfrage, also ist es einfach so wie es ist. Würden Sie Ihre Daten zur Profilerstellung und Verbesserung freigeben? Sie können ein Ticket zu trac.osgeo.org/postgis hinzufügen und erweitern und die Daten (sind es Punkte, Linien oder Polygone?) Oder einen Link dazu anhängen. Das wäre großartig.
Paul Ramsey
Ich werde herausfinden, ob ich die Daten teilen kann. Wenn ich kann, erstelle ich ein Ticket dafür.
Nathan W