Мне нравится проверять, что королева индексации Кимберли Трипп говорит по этой теме:
Я собираюсь начать с моей рекомендации по ключу кластеризации - по нескольким причинам. Во-первых, это несложное решение, а во-вторых, заблаговременное принятие этого решения помогает заранее предотвратить некоторые типы фрагментации. Если вы можете предотвратить определенные типы фрагментации базовой таблицы, то вы можете свести к минимуму некоторые действия по обслуживанию (некоторые из которых в SQL Server 2000 И меньше в SQL Server 2005) требуют, чтобы ваша таблица была отключена. Хорошо, я займусь восстановлением позже ...
Начнем с ключевых вещей, которые я ищу в ключе кластеризации:
* Unique
* Narrow
* Static
Почему уникальный?
Ключ кластеризации должен быть уникальным, поскольку ключ кластеризации (если он существует) используется в качестве ключа поиска для всех некластеризованных индексов. Возьмем, к примеру, указатель в конце книги - если вам нужно найти данные, на которые указывает запись указателя - эта запись (запись указателя) должна быть уникальной, в противном случае, какая запись указателя будет той, которую вы ищете ? Итак, когда вы создаете кластерный индекс - он должен быть уникальным. Но SQL Server не требует, чтобы ваш ключ кластеризации создавался в уникальном столбце. Вы можете создать его в любом столбце (ах) по своему желанию. Внутренне, если ключ кластеризации не является уникальным, SQL Server «унифицирует» его, добавляя к данным 4-байтовое целое число. Таким образом, если кластеризованный индекс создается для чего-то, что не является уникальным, это означает не только дополнительные накладные расходы при создании индекса, но и потраченное впустую дисковое пространство,
Источник: постоянно растущие споры о кластеризации - снова!