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.



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.


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
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.