5
SQL Server 지리 데이터 형식을 사용하여 데이터베이스에 레코드 위치를 저장하고 있습니다. 이 꽤 빨리 실행 내 테스트 데이터베이스에서 다스 기록의 부부와 함께지리와 거리를 사용하여 SQL Server 데이터베이스에서 레코드 선택
DECLARE @location AS geography = geography::Point(@latitude, @longitude, 4326)
DECLARE @distance AS INT = 10000
SELECT *
FROM records
WHERE records.location.STDistance(@location) <= @distance
나는 문제 없어,하지만 난 알고 나는 주어진 위치의 일정 거리 내의 모든 레코드를 선택하고 싶습니다 그 WHERE 절은 내 데이터베이스의 모든 레코드에 대해 STDistance를 실행하고 있으며 수천 개의 레코드가 있으면 크롤링 속도가 느려집니다.
더 좋은 방법이 있나요? 어쩌면 이웃 지역에서 일종의 지역 및 우선 데이터를 만들 수 있습니까?
당신은하지만 ...이 ST_Distance 기능에 체크 위도/long 치의 범위를 좁힐 경계 상자의 일련의 작업을 수행 할 수 있습니다, 나는 마이크로 소프트가 그것을시키는 권하고 싶습니다. MSSQL 공간 인덱싱을위한 google을 수행하십시오 – Twelfth
[공간 인덱스 개요] (http://msdn.microsoft.com/en-us/library/bb895265.aspx) – wdosanjos