У меня есть таблица базы данных, которая содержит данные о клиентах с несколькими миллионами строк, и мне нужно изменить поле фамилии с NVARCHAR (32) на NVARCHAR (50). Поле имеет индекс (некластеризованный). Мне нужно знать, будет ли внесение этого изменения с помощью инструкции ALTER TABLE ALTER COLUMN автоматически перестроить индекс.
Если так, я думаю, это заняло бы совсем немного времени. Наш процесс обновления в производственном процессе выполняется с помощью выпущенного установщика, который запускает сценарии, и нам нужно рассчитывать, сколько времени займет обновление. У нас есть большие БД в производстве как на SQL 2005, так и на 2008, поэтому мне нужно знать ответ для обоих, если они разные.
Я знаю, что увеличение размера столбцов не должно изменять данные в поле переменной длины, например NVARCHAR, и должно быть очень быстрым даже для больших наборов данных в ситуации, когда индекс не задействован. Что мне не ясно, так это то, будет ли индекс намного медленнее.
Я прочитал документацию по ссылке ниже, но на самом деле она просто указывает, что вы можете внести изменения с помощью существующего индекса, и не указывает, какое влияние это может оказать на время выполнения оператора ALTER TABLE, или после этого индекс должен быть перестроен или выполнен автоматически и т. д.
http://msdn.microsoft.com/en-us/library/ms190273.aspx
Вопрос по ссылке ниже - это почти то же самое, что я задаю здесь, но нет удовлетворительного ответа на этот другой пост, поэтому я решил попробовать новый пост.
Пересчет индекса SQL Server 2005 при увеличении размера поля varchar
Пожалуйста, дайте мне знать, если у вас был опыт с этим. Если я смогу настроить тестовую систему со значительной базой данных, где я смогу экспериментировать, я опубликую результаты.
Спасибо!