Подтвердить что ты не робот

Падение/Отключение индекса лучше в sql-сервере

Я пишу это после Изменение типа данных столбца в SQL Server

Мой вопрос раньше был, если мне нужно удалить все индексы и ограничения, и был дан ответ. Мне нужно удалить их.

Так как я занимался серфингом в Интернете по этой теме, я наткнулся на несколько сообщений, в которых говорилось, что лучше отключить и включить индекс, а не удалять и воссоздавать их.

Так что это лучший способ сделать это? Отключение индекса позволяет также изменить тип данных столбца? В чем разница между ними?

Заявление с отбрасыванием и созданием индекса

DROP INDEX UX_1_COMPUTATION ON  dbo.Computation 

ALTER TABLE dbo.Computation
ALTER COLUMN ComputationID NVARCHAR(25) not null

CREATE UNIQUE INDEX UX_1_COMPUTATION ON dbo.Computation (ComputationID);

Заявление с индексом отключения и включения

ALTER INDEX [UX_1_COMPUTATION ] ON  dbo.Computation DISABLE

ALTER TABLE dbo.Computation
ALTER COLUMN ComputationID NVARCHAR(25) not null

ALTER INDEX [UX_1_COMPUTATION ] ON dbo.Computation REBUILD;
4b9b3361

Ответ 1

Отключение индекса позволяет также изменить тип данных столбца?

Он основан на типе индекса, который вы выбрали. Вы не можете изменить тип данных столбца, если кластерный индекс в таблице отключен. Если ваш индекс не является кластеризованным индексом, вы можете.

В чем разница между обоими?

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

что лучше сделать?

В вашем случае я бы предложил сбросить и воссоздать индексы.