У меня проблемы с поиском окончательного источника информации об этом где-либо, так что, надеюсь, гуру может дать мне ответ здесь.
У меня есть очень большая таблица, к которой мы должны были добавить столбец. Кластерный индекс довольно сильно фрагментирован, и я хочу сделать это, ALTER INDEX REBUILD
чтобы очистить его.
Я также обычно делаю, ALTER TABLE REBUILD
когда я изменяю столбцы, так как это очищает любые указатели или расщепления от этой операции.
Нужно ли делать оба, так как мы говорим о кластеризованном индексе, который по сути является таблицей?
Я подозреваю, что ALTER INDEX REBUILD
кластер не будет обновлять все, что ALTER TABLE
будет, но я также боюсь, что ALTER TABLE
он не очистит фрагментацию индекса.
Ответы:
Если вы перестраиваете кластеризованный индекс, вам не нужно перестраивать таблицу. Если таблица была кучей (не имела кластеризованного индекса), вы можете перестроить ее.
источник
ALTER TABLE REBUILD
так как это исправит указатели, не зафиксированные в перестроении индекса. Разве это больше не так?Пересборка сбрасывает и воссоздает индекс. Когда вы создаете кластерный индекс, он переупорядочивает строки таблицы в дополнение к созданию CIX (таблица без CIX - это куча).
источник