Ich verwende eine Abfrageebene unter SQL Server in ArcMap. Die Abfrageebene wird sofort in SQL Server ausgeführt, das Zeichnen in ArcMap dauert jedoch so lange, dass das System etwa 10 Minuten oder länger nicht mehr reagiert. Während des ArcMap-Zeichnens wird diejenige der CPUs im SQL Server-Prozess maximal genutzt.
Meine Abfrage ist die STIntersects eines Puffers in einem Linien-Feature (Shannon) gegen eine Polygon-Feature-Class (Townlands) wie folgt;
SELECT TOWNLANDS.TL_ID,TOWNLANDS.Shape FROM dbo.TOWNLANDS as townlands
with(index(FDO_Shape))
JOIN dbo.Shannon on townlands.Shape.STIntersects
(Shannon.Shape.STBuffer(2.0))=1
Die Abfrage gibt sofort 186 Zeilen zurück. Diese können problemlos im räumlichen Bereich von SQL Server Management Studio gezeichnet werden
Wenn ich in ArcMap eine Abfrageebene mit genau derselben Syntax erstelle, reagiert das System nicht mehr, zeichnet aber schließlich. Es sieht so aus, als würde ArcMap den räumlichen Index möglicherweise nicht verwenden oder unterscheidet sich von SQL Server, was zu einer ineffizienten Abfrage in SQL Server führt, deren Rückgabe einige Zeit in Anspruch nimmt.
Kann jemand über ein Heilmittel beraten?
Vielen Dank
ArcGIS Desktop: 10.2
ArcSDE: 10.2
RDBMS: Database and version: SQL Server 2008
OS: Windows Server
Dies ist eine bekannte Einschränkung bei der Verwendung von ArcGIS mit SQL Server, für die meines Wissens keine einfache Lösung verfügbar ist.
Wenn der SQL Server-Abfrageplaner entscheidet, dass mehr als eine CPU zum Ausführen der Abfrage erforderlich ist, ist die Wahrscheinlichkeit gering, dass der räumliche Index verwendet wird.
Microsoft ist sich des Problems bewusst, hat es jedoch nicht eilig, den Abfrageplaner zu verbessern, da dies alle Abfragen betreffen würde, nicht nur die räumlichen.
Die einzig zuverlässige Lösung besteht darin, den maximalen Parallelitätsgrad (MAXDOP) für Ihre Datenbank auf 1 zu setzen. Dies bedeutet jedoch, dass alle Abfragen in dieser Datenbank nur 1 CPU pro Abfrage verwenden, was alles verlangsamt.
Das Erstellen einer Ansicht, die die Tabelle darstellt und den räumlichen Indexhinweis erzwingt, funktioniert nicht, da ArcGIS die Metadaten und Statistiken der Tabelle abfragen muss und eine solche Ansicht diese Abfragen beendet.
quelle
Ich habe ein ähnliches Problem. Ich habe eine Feature-Class in SQL Server als Geometrietyp gespeichert. Es enthält 30 Millionen Datensätze und seine Zeichnungen sind in Ordnung. Wenn Sie jedoch eine mit einer zweiten Tabelle verknüpfte ANSICHT erstellen, hängt diese ANSICHT und wird nicht angezeigt.
Der Tabelle sind zahlreiche Beziehungsklassen zugeordnet. Beeinflussen diese die Abfrage- / Zeichnungsleistung?
Können Sie mich auch auf die Anerkennung dieses Problems durch Microsoft hinweisen? Kann ich den Abfrageplaner zwingen, den räumlichen Index zu verwenden?
Rechnung
quelle