Estoy usando una capa de consulta en SQL Server en ArcMap. La capa de consulta se ejecuta instantáneamente en SQL Server, pero tarda tanto en dibujar en ArcMap que el sistema no responde durante unos 10 minutos o más. Durante el sorteo de ArcMap, una de las CPU se maximiza en el proceso de SQL Server.
Mi consulta son las intersecciones STI de un búfer en una entidad de línea (Shannon) contra una clase de entidad de polígono (Townlands), como sigue;
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
La consulta devuelve 186 filas al instante. Estos se pueden dibujar en el panel espacial de SQL Server Management Studio sin ningún problema
Cuando construyo una capa de consulta en ArcMap con exactamente la misma sintaxis, el sistema deja de responder pero eventualmente dibuja. Parece que, tal vez, ArcMap no está utilizando el índice espacial o lo está haciendo diferente de SQL Server, lo que provoca una consulta ineficiente en SQL Server que tarda en volver.
¿Alguien puede aconsejar sobre un remedio?
Gracias
ArcGIS Desktop: 10.2
ArcSDE: 10.2
RDBMS: Database and version: SQL Server 2008
OS: Windows Server
Esta es una limitación conocida del uso de ArcGIS con SQL Server que, por lo que sé, no tiene una solución simple.
Si el planificador de consultas de SQL Server decide que necesita más de una CPU para ejecutar la consulta, las probabilidades de que se utilice el índice espacial son bajas.
Microsoft es consciente del problema, pero no tiene prisa por mejorar el planificador de consultas porque afectaría a todas las consultas, no solo a las espaciales.
La única solución confiable es establecer su grado máximo de paralelismo (MAXDOP) en su base de datos a 1, pero esto significa que todas las consultas en ese DB solo usarán 1 CPU por consulta, lo que ralentizará todo.
Crear una vista que represente la tabla y fuerce la sugerencia de índice espacial no funciona, ya que ArcGIS necesita consultar los metadatos y las estadísticas de la tabla, y dicha vista elimina esas consultas.
fuente
Tengo un problema similar. Tengo una clase de entidad almacenada en SQL Server como tipo de geometría. Tiene 30 millones de registros y se dibuja bien, pero si crea una vista vinculada a una segunda tabla, esta vista se bloquea y no se mostrará.
La tabla tiene un montón de clases de relación adjuntas. ¿Esto afectará el rendimiento de la consulta / dibujo?
También puede señalarme en la dirección del reconocimiento de Microsoft de este problema. ¿Puedo forzar al planificador de consultas a usar el índice espacial?
Cuenta
fuente