Влияет ли увеличение размера столбца NVARCHAR в SQL Server на перестройку индекса? - PullRequest
3 голосов
/ 29 марта 2012

У меня есть таблица базы данных, которая содержит данные о клиентах с несколькими миллионами строк, и мне нужно изменить поле фамилии с 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

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

Спасибо!

1 Ответ

3 голосов
/ 10 апреля 2012

Нет - индексы никогда не перестраиваются автоматически в SQL Server, даже если вы изменяете размер столбца, например упомянутый столбец nvarchar.Индексы поддерживаются автоматически, но не перестраиваются.Статистика / внутренняя гистограмма данных может автоматически обновляться, если установлена ​​опция БД «Автоматическое обновление статистики».

...