2010-07-08 4 views
8

У меня есть таблица с столбцом IDENTITY в качестве основного ключа (классический столбец идентификатора).Компонентный кластеризованный индекс в SQL Server

SQL Server автоматически создает кластерный указатель для этого основного ключа.

Мой вопрос:

  • Могу ли я иметь только одного кластерный индекс композит с несколькими столбцами?

Если да, то как я могу сбросить кластерный индекс по умолчанию и воссоздать новый с этими атрибутами.

Спасибо за вашу поддержку

ответ

14

Да, вы можете иметь только один кластерный индекс для каждой таблицы - данные физически расположены по этому показателю, так что вы не можете иметь больше чем один.

Я бы не рекомендовал использовать составной кластеризованный индекс. Зачем? Поскольку кластерный индекс должен быть всегда:

  • как можно - INT с 4 байта совершенен
  • стабилен - никогда не изменится, так что вы не должны рябью обновления через все индексы
  • уникальный - в противном случае, SQL Server должен будет «uniquify» ваши записи с 4-искусственный байт значения
  • оптимальным будет: все большее

INT IDENTITY идеально подходит как кластерный индекс - Я бы посоветовал вам держать его Tha t путь.

Кластерный индексный столбец (или набор столбцов) также добавляется к каждой записи каждого некластеризованного индекса в этой же таблице - поэтому, если вы сделаете свой кластеризованный индекс большим, 20, 50 байтами или более, вы начинают тратить много места - на диск и в память вашего сервера, что в целом снижает производительность вашей системы.

Читать все о кластерных индексах и то, что они должны быть, чтобы быть хорошими кластерные индексов здесь:

+1

Спасибо за ваше время! – GibboK

Смежные вопросы