В sql server только один. DB2 предлагает возможность иметь больше, но по цене: двумерная кластеризация занимает много памяти (пропорционально квадрату строк)

Server 2008 сколько кластерных индексов может быть в одной таблице?

Ответы на вопрос(5)

1 кластерный индекс + 249 некластеризованный индекс = 250 индексов

Для SQL Server 2008: 1 кластеризованный индекс + 999 некластеризованный индекс = 1000 индексов

но по цене: двумерная кластеризация занимает много памяти (пропорционально квадрату строк)

Хотя для этого есть определенные причины, может показаться немного странным, что разрешен только один кластерный индекс. Тот факт, что кластерный индекс сортирует данные внутри, на самом деле не объясняет причину наличия только одного такого индекса, потому что некластеризованные индексы сортируются точно так же, как кластерные. Некластеризованные индексы могут включать все данные таблицы так же, как кластеризованные. Поэтому, по крайней мере, в некоторых случаях вполне разумно создать несколько «кластерных» индексов или просто полностью ликвидировать это различие. Но SQL Server не позволит вам создать более одного.

 nvogel06 янв. 2011 г., 20:37
@ Мэтью: не глупо думать, что одни и те же данные сортируются в разных порядках. Это именно то, что происходит, если вы создаете два некластеризованных индекса по одному и тому же набору столбцов - или даже больше, если вы включаете дополнительные столбцы в некластеризованный индекс с помощью предложения INCLUDE. Я также хотел бы знать, почему я был понижен.
 Matthew06 янв. 2011 г., 21:12
Не в соответствии с Microsoft, по ссылке Джо Стефанелли. Довольно однозначно, что «кластеризованный индекс определяет физический порядок данных в таблице». Логически, физические данные могут существовать только в одном порядке. Вы можете сохранить несколько физических копий и решить, какой запрос запрашивать, основываясь на каком-то другом индексе, если хотите ... но это выходит за рамки этого вопроса.
 JNK06 янв. 2011 г., 21:25
Страницы таблицы физически хранятся на диске в порядке кластерного ключа, если он существует. Я не уверен, почему есть какая-то путаница или сомнения по этому поводу.
 A Developer19 окт. 2012 г., 13:32
Нет причин для понижения здесь ..
 Matthew06 янв. 2011 г., 20:30
Это не мое понимание. Кластерный индекс, по ссылке Джо, касается фактического порядка хранения. Бессмысленно думать, что вы могли бы в равной степени упорядочить данные в двух разных порядках ... Скорее вы бы упорядочили по одному, а затем по другому ... отсюда и кластерные индексы. РЕДАКТИРОВАТЬ: Хотя я думаю, кто бы ни отрицал вас, был немного резок.
Решение Вопроса
 tesmp06 янв. 2011 г., 19:43
Спасибо за ссылку!

Вот:

«Кластерный индекс определяет физический порядок данных в таблице. Кластерный индекс аналогичен телефонному справочнику, в котором данные располагаются по фамилии. Поскольку кластерный индекс определяет физический порядок хранения данных в таблице, таблица может содержать только один кластерный индекс. "

Ваш ответ на вопрос