Как мне сделать, чтобы мой пространственный индекс использовал Уровень больше чем ВЫСОКИЙ? - PullRequest
1 голос
/ 23 августа 2011

Мой индекс пространственной географии в SQL Server имеет следующие определения уровней:

ВЫСОКИЙ НИЗКИЙ НИЗКИЙ НИЗКИЙ НИЗКИЙ

Проблема в том, что все мои точки находятся в городе и, следовательно, все мои точкинаходятся в одной ячейке на уровне 1. В результате основной фильтр просматривает все точки, что означает, что моя эффективность индекса равна 0%.Я понял, что ВЫСОКАЯ сетка означает, что есть 256 ячеек.Как мне вместо этого использовать 512 клеток или 1024 клетки?256 просто не достаточно для меня.

Посмотрите на этой странице разные уровни.

Кто-нибудь знает, как получить более высокое значение, чем HIGH?

1 Ответ

0 голосов
/ 15 июня 2012

Вам необходимо использовать ограничивающий прямоугольник (см. http://technet.microsoft.com/en-us/library/bb934196(v=sql.105).aspx для получения информации о ограничивающих прямоугольниках).

Без ограничивающего прямоугольника: проблема в том, что SQL Server использует методологию вложенных сеток,256 ячеек вместе должны занимать все пространство!Это означает, что ваш HLLL ограничивает количество используемых вами ячеек.Подумайте об этом так: часть LLL создает 4096 ячеек для каждой из начальных ячеек256 ячеек должны быть одинакового размера.Это означает, что ваши ячейки высокого уровня разделяются на слишком большую площадь!

Вместо этого, если вы поместите ограничивающий прямоугольник, общая покрытая площадь будет уменьшена, а 4096 сеток будет меньше, поэтому разбиениеэтого в 256 может быть достаточно.

...