Падение/Отключение индекса лучше в 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;
Ответы
Ответ 1
Отключение индекса позволяет также изменить тип данных столбца?
Он основан на типе индекса, который вы выбрали. Вы не можете изменить тип данных столбца, если кластерный индекс в таблице отключен. Если ваш индекс не является кластеризованным индексом, вы можете.
В чем разница между обоими?
Самая большая разница между отключением и отбрасыванием индекса заключается в том, сохраняются ли метаданные и статистика. Если они отключены, они есть. Если они выпадают, это не так. Перед выполнением любого действия убедитесь, что вы тщательно взвешиваете свои параметры и всегда имеете возможность воссоздать доступный индекс.
что лучше сделать?
В вашем случае я бы предложил сбросить и воссоздать индексы.