Во-первых, определение кластеризованного индекса состоит в том, что это физическое упорядочение данных на диске. Каждый раз, когда вы выполняете вставку в эту таблицу, новая запись будет размещаться на физическом диске в порядке, соответствующем ее значению в столбце кластерного индекса. Поскольку это физическое расположение на диске, это (A) наиболее быстро доступный столбец в таблице, но (B) можно определить только один кластеризованный индекс для таблицы. Какой столбец (или столбцы) вы используете в качестве кластеризованного индекса, зависит от самих данных и их использования. Первичные ключи обычно являются кластеризованным индексом, особенно если первичный ключ является последовательным (например, целое число, которое увеличивается автоматически с каждой вставкой). Это обеспечит самую быструю функциональность вставки / обновления / удаления. Если вас больше интересует выполнение операций чтения (выберите * из таблицы), вам может потребоваться кластеризация по столбцу «Дата», поскольку в большинстве запросов указывается либо дата в предложении where, либо предложение group by, либо оба.
Во-вторых, кластерные индексы (по крайней мере в известных мне БД) не обязательно должны быть уникальными (они МОГУТ иметь дубликаты). Заставить колонку быть уникальной - это отдельный вопрос. Если кластерный индекс является первичным ключом, его уникальность является функцией первичного ключа.
В-третьих, я не могу следить за вашими вопросами, касающимися 249 столбцов. Некластеризованный индекс - это в основном инструмент для ускорения запросов за счет дополнительного дискового пространства. Трудно представить себе случай, когда необходимо создать индекс для каждого столбца. Если вы хотите быстрое эмпирическое правило ...
- Напишите запрос, используя вашу таблицу.
- Если для объединения требуется столбец, индексируйте его.
- Если в столбце where используется столбец, индексируйте его.
Помните, что все индексы делают для вас ускорение ваших запросов. Если запросы выполняются быстро, не беспокойтесь о них.
Это всего лишь эскиз эскиза большой темы. Есть множество более информативных / исчерпывающих ресурсов по этому вопросу, а некоторые зависят от системы баз данных ... просто Google.