2009-04-01 1 views
4

У меня есть ограничение PK - кластерный индекс на двух столбцах - который я нахожу в процессе удаления. Команда все еще работает через час. Я бы подумал, что, поскольку я просто удаляю ограничение, операция будет почти мгновенной. Может кто-нибудь объяснить мне, что на самом деле происходит под капотом, когда я бросаю ПК?Что происходит, когда я удаляю кластерный первичный ключ в SQL 2005

ответ

9

Кластерный индекс не является «просто ограничением», это метод хранения.

Когда вы бросьте ваши данные в настоящее время заказаны из кластерных хранений для хранения кучи

Других индексов обновляемых для обозначения RID-х вместо PRIMARY KEY значений.

1

Сгруппированный индекс - это данные, которые объяснят время его запуска.

+0

Адрес: Удаление кластерного индекса pk-ограничения не отбрасывает самих данных (по крайней мере, у меня проблемы, если это так). Вы имеете в виду, что данные переупорядочиваются? –

+0

Кластерный индекс определяет, как данные физически расположены. Когда вы его удаляете, данные будут перегруппированы, но не будут удалены, не стоит беспокоиться. –

+1

Хорошо. Так зачем же его перестраивать? Если я не укажу порядок, почему он собирается беспокоиться о том, чтобы составить свой собственный? –

0

Индекс «CLUSTERED» будет физически записывать записи вашей таблицы в порядок на жесткий диск. Поэтому падение или изменение этого индекса, скорее всего, вызовет SQL Server в основном «дефрагментации» (переупорядочения) вашего жесткого диска (ну, по крайней мере, той части, где данные для этой таблицы).

Обратите внимание, что этот ответ не является абсолютно техническим ... но он предназначен для того, чтобы дать вам ответ «о, это то, что происходит», который обычно является более чем достаточно хорошим.

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