Я согласен с Кейд Ру .
Эта статья должна вывести вас на правильный путь:
Следует отметить, что кластеризованные индексы должны иметь уникальный ключ (столбец идентификаторов, который я бы рекомендовал) в качестве первого столбца. В основном это помогает вставлять данные в конец индекса и не вызывает много дискового ввода-вывода и разбиения страницы.
Во-вторых, если вы создаете другие индексы для ваших данных, и они построены умно, они будут использованы повторно.
например, представьте, что вы ищете таблицу по трем столбцам
штат, округ, почтовый индекс.
- Вы иногда ищете только по штатам.
- Вы иногда ищете по штатам и округам.
- Вы часто ищете по штатам, округам, почтовым индексам.
Тогда индекс с государством, графством, почтовым индексом. будет использоваться во всех трех из этих поисков.
Если вы будете выполнять поиск по одному только zip-файлу, то вышеупомянутый индекс не будет использоваться (в любом случае SQL Server), поскольку zip является третьей частью этого индекса, и оптимизатор запросов не посчитает этот индекс полезным.
Затем вы можете создать индекс только на Zip, который будет использоваться в этом случае.
Кстати, мы можем воспользоваться тем фактом, что при многоколоночной индексации первый столбец индекса всегда можно использовать для поиска, а при поиске только по «состоянию» он эффективен, но все же не так эффективен, как индекс по одному столбцу в «состоянии». '
Я предполагаю, что ответ, который вы ищете, заключается в том, что это зависит от того, где вы находитесь, где вы часто используете запросы, а также от вашей группы.
Статья очень поможет. :-)