입력 위도와 가장 긴 위도를 찾습니다 (SQL Server 2008)


12

데이터베이스에 포인트 클라우드가 있습니다 (SQL Server 2008 공간). 약 6 백만 건의 기록입니다. id, value, geom의 3 가지 열이 있습니다. 입력 위도에서 '값'을 얻는 최적의 방법은 무엇입니까 ??

SQL Server 2008의 공간 쿼리를 처음 사용합니다. 누군가 입력 범위와 일치하거나 가장 가까운 geom 열에서 포인트를 찾는 간단한 예를 게시 할 수 있습니까?



나는 노력했다. 그러나 6 백만 개의 레코드가 있으며 다른 이유로 인덱스 작성에 실패합니다. 빈 테이블을 만들고 geom에 공간 인덱스를 추가 한 다음 데이터를 추가하려고합니다. 작동합니까?
Shaunak

어떤 오류가 발생합니까? 인덱스는로드 속도가 느려질 수 있습니다.로드 후 인덱스를 추가하면 속도가 훨씬 빠릅니다. 인덱스에 따라 성능이 크게 좌우되므로이를 올바르게 수행 할 가치가 있습니다.
Kirk Kuykendall

답변:



4

지오메트리가 아닌 지리를 사용합니다 (데이터가 위도 / 경도 인 경우 데이터는 지오메트리가 아닌 지리 유형이어야 함)

"SQL Server 지리 데이터 형식은 GPS 위도 및 경도 좌표와 같은 타원체 (둥근 지구) 데이터를 저장합니다."

위도 / 경도 (-122.0 37.0) 지점에서 최상위 5 개의 가장 가까운 레코드를 선택하려면 사용할 수 있습니다.

SELECT   TOP 5
         geography::STGeomFromText('POINT(-122.0 37.0)', 4326).STDistance(p) 
FROM     markers
WHERE    geography::STGeomFromText('POINT(-122.0 37.0)', 4326).STDistance(p) < 25
ORDER BY geography::STGeomFromText('POINT(-122.0 37.0)', 4326).STDistance(p);

p 란 무엇입니까? 미안 나는 새로운 bie thats 왜 묻는
Shax

DECLARE @p 지리
Andrew Hill
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.