У меня есть таблица с двумя очень важными полями:
id INT identity(1,1) PRIMARY KEY
identifiersortcode VARCHAR(900)
Мое приложение всегда сортирует и отображает результаты поиска в пользовательском интерфейсе на основе identifiersortcode
, но все объединения таблиц (и они легионы) находятся в поле id
. (Помимо: да, код сортировки действительно такой длинный. Есть веская причина BL.)
Кроме того, из-за использования O / RM большинство операторов SELECT собираются тянуть почти каждый столбец.
В настоящее время кластеризованный индекс находится на id
, но мне интересно, будет ли часть TOP / ORDER BY большинства запросов сделать identifiersortcode
более привлекательным вариантом в качестве кластеризованного ключа, даже учитывая все объединения таблиц происходит.
Вставки в таблицу и изменения в identifiersortcode
достаточно ограничены, чтобы изменение моего кластерного индекса могло стать проблемой для операций вставки / обновления.
Попытка сделать некластеризованный индекс кода сортировки индексом покрытия (используя INCLUDE
) не является хорошим вариантом. Существует несколько больших столбцов, и некоторые из них активно обновляются.