Некластерный индекс на столбце Clustered Index улучшает производительность?

В SQL Server 2005 запрос анализатор говорил мне много раз создавать некластерный индекс на основном столбце ID таблицы, которая уже имеет кластерный индекс. После следования этой рекомендации план выполнения запросов сообщает, что запрос должен быть быстрее.

Почему был бы Некластерный индекс на том же столбце (с тем же порядком сортировки) быть быстрее, чем Кластерный индекс?

10
задан Yuck 27 November 2019 в 17:22
поделиться

3 ответа

Я предположил бы, что это будет быстрее в случаях, где Вам не нужны полные данные строки, например, если Вы просто проверяете, существует ли строка с данным идентификатором действительно. Затем кластерный индекс был бы довольно огромен, в то время как маленький индекс "на один столбец" будет намного более тонким.

2
ответ дан 3 December 2019 в 21:24
поделиться

Кластерный индекс имеет все данные для таблицы, в то время как не кластерный индекс только имеет столбец + местоположение кластерного индекса или строка, если это находится на "куче" (таблица без кластерного индекса). Таким образом, если Вы делаете количество (столбец) и тот столбец индексируется с не SQL-сервером кластерного индекса, только должен просканировать не кластерный индекс, который быстрее, чем кластерный индекс, потому что больше будет соответствовать на 8K страницах

16
ответ дан 3 December 2019 в 21:24
поделиться

Кластерный индекс обычно будет быстрее, но у Вас может только быть 1 кластерный индекс. Таким образом, если таблица уже имеет кластерный индекс на другом столбце, то некластерный индекс является лучшим, можно сделать.

-1
ответ дан 3 December 2019 в 21:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: