неуникальный индекс против полного сканирования таблицы - PullRequest
0 голосов
/ 02 декабря 2018

Когда столбец является столбцом некластеризованного индекса, его отношение адреса строки ключа хранится где-то еще.

Я понимаю, если тип данных столбца индекса является числовым, сервер SQL использует механизм поиска B-дереванайти ответ.Как насчет того, когда тип столбца является текстовым, особенно если в индексе могут быть повторяющиеся значения?

В чем разница между запросами SQL, выполняемыми в отдельной таблице с парой адресных строк и неиндексированным столбцом таблицы?

1 Ответ

0 голосов
/ 02 декабря 2018

Как насчет того, когда тип столбца является текстовым, особенно если в индексе могут быть повторяющиеся значения?

Нет разницы в том, как обрабатываются некластеризованные индексы для значений varchar / nvarchar.Хотя максимальный размер ключа составляет 1700 байт.

И для дублированных значений все индексы BTree фактически сохраняются как уникальные индексы.Если индекс не является уникальным, ключ кластеризованного индекса добавляется к каждому значению ключа на неконечных страницах.См. Geek City: Подробнее о ключах некластеризованного индекса

В чем разница между поисками SQL в отдельной таблице с парой адресов строк строк и неиндексированным столбцом таблицы?

Очень мало.Если вы посмотрите на планы запросов, то увидите, что по сути представляет собой соединение некластеризованного индекса с кластеризованным индексом, то же самое, что и между отдельной таблицей и кластеризованным индексом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...