2009-02-04 12 views

답변

0
이 아사 프

예, 작동합니다.

저는 ISpatialFilter를 사용하는 ESRI-ArcObject 기반 쿼리에서 동일한 클래스를 하나의 SqlCommand로 전환하여 동일한 데이터를 반환했습니다. 근접 검색 (1000 피트에서 x 지점 이내의 모든 레코드 반환)입니다.

처음에는 ESRI 쿼리가 여전히 빠르지 만 매우 저조한 where 절이 원인이었습니다 (여전히 SQLSVR2008에서 공간 함수를 사용하는 방법을 배우고 있습니다).

몇 가지 조정을 한 후에는 SQL 방법이 ESRI 방법보다 빠르지 만 많이 사용하지는 않았습니다. 그 다음 나는 10000 피트까지 나의 검색 거리를 꽂았다, 그리고, 나는 그 차이를 보았다. SQL Server 2008 방법은 훨씬 빠릅니다.

(ESRI) 인근 고객 경과 시간 (초) 검색 : 1.503 (SQL2008) 쿼리 인근 고객 경과 시간 (초) : 0.925

속도 차이가 인덱스와 함께 할 필요는 없지만, 그러나 ESRI-ArcObjects를 사용합니다. 내 ESRI 방법에서는 IProximityOperator와 IPoint에서 거리, x 및 y를 가져옵니다. SQL2008 메서드에서는 데이터베이스가 모든 작업을 처리하도록합니다. SHAPE.STX는 X, SHAPE.STY는 Y, SHAPE.STDistance (그러나 ArcObject 개발자는 그 오버 헤드에 대해 모두 알고 있습니다).

나는 지금까지 감동했습니다.