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.