2011-08-23 1 views
1

SQL Server의 공간 지형 색인에는 다음과 같은 수준 정의가 있습니다.공간 인덱스를 HIGH보다 큰 레벨로 사용하려면 어떻게합니까?

HIGH LOW LOW LOW

문제는 내 지점의 모든 도시에 있고, 따라서 내 모든 포인트 차 필터는 모든 점에서 찾고 그 결과 층 (1)에서 하나의 셀에 있다는 것입니다 내 인덱스 효율성이 0 %임을 의미합니다. HIGH 그리드 란 256 개의 셀이 있음을 의미합니다. 대신 512 개의 셀 또는 1024 개의 셀을 사용합니까? 256 그냥 충분하지 않습니다.

Take a look at this page for the different levels.

사람이 HIGH보다 더 높은 값을 얻는 방법을 알고 있나요?

+0

CELLS_PER_OBJECT 매개 변수를 변경해 보셨습니까? –

+0

@Pavel Nefyodov 그것은 폴리곤 오브젝트에만 적용되며 포인트가 아닙니다. –

+1

귀하의 모든 포인트가 작은 영역 내에 있다면 GEOMETRY 데이터 유형을 사용하여 도시 주변의 경계 영역, 즉 선택한 프로젝션 시스템을 지정하는 것이 좋지 않습니까? – CatchingMonkey

답변

0

경계 상자를 사용해야합니다 (경계 상자에 대한 자세한 내용은 http://technet.microsoft.com/en-us/library/bb934196(v=sql.105).aspx 참조).

경계 상자가없는 경우 : SQL Server에서 하위 격자 방법론을 사용한다는 것이 문제입니다. 함께 256 세포가 전체 공간을 스팬해야합니다! 이것은 HLLL이 사용하는 셀의 수를 제한한다는 것을 의미합니다. LLL 부분은 각 초기 세포에 대해 4096 개의 세포를 만듭니다. 256 셀은 각각 동일한 크기 여야합니다. 즉, 높은 수준의 셀이 너무 큰 영역으로 나뉘어져 있음을 의미합니다!

대신 경계 상자를 넣으면 덮여지는 총 영역이 줄어들고 4096 개의 격자가 더 작아 지므로 256으로 분할하면 충분합니다.