我在ArcMap中的SQL Server上使用查询层。查询层可在SQL Server中立即执行,但在ArcMap中绘制需要花费很长时间,以至于系统在大约10分钟或更长时间内无响应。在ArcMap绘制期间,SQL Server进程中的CPU之一已用尽。
我的查询是线要素(Shannon)上与多边形要素类(Townlands)相对的缓冲区的STIntersects;如下所示;
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
查询立即返回186行。可以在“ SQL Server Management Studio空间”窗格中绘制它们,而不会出现问题
当我使用完全相同的语法在ArcMap中构建查询图层时,系统变得无响应,但最终会绘制。似乎ArcMap似乎未使用空间索引,或者这样做与SQL Server有所不同,这导致SQL Server上的查询效率低下,并且需要一定的时间才能返回。
谁能建议补救措施?
谢谢
ArcGIS Desktop: 10.2
ArcSDE: 10.2
RDBMS: Database and version: SQL Server 2008
OS: Windows Server