Создает ли SQL Server некластеризованный индекс по всем столбцам таблицы по умолчанию - PullRequest
2 голосов
/ 16 октября 2011

Будет ли сервер sql создавать некластеризованный индекс по умолчанию? Должны ли мы действительно поместить все FK как некластеризованный индекс? Какой компромисс здесь

1 Ответ

9 голосов
/ 16 октября 2011

Нет, SQL Server не создает автоматически некластеризованные индексы.
Кластерный индекс создается автоматически на основе первичного ключа, если в вашем операторе CREATE TABLE не указано иное.

Да, я бы порекомендовал индексировать столбцы с внешним ключом, потому что они наиболее вероятны для JOIN / поиска с использованием IN, EXISTS и т. Д. Однако следует помнить, что индекс для набора с низким количеством элементов значения (например, пол) будут относительно бесполезными, потому что разница в значениях недостаточна.

Компромисс со всеми индексами заключается в том, что они могут ускорить поиск данных, но замедлить вставку / обновление / удаление данных. Есть также обслуживание, которое необходимо выполнить, потому что они могут быть фрагментированы (например, жесткие диски), но также могут не привыкнуть со временем. Индексы также занимают место на диске.

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