Перестроение индекса SQL Server 2005 при увеличении размера поля varchar

У меня есть 12 полей varchar(50) в таблице из 90 миллионов строк, которые мне нужно увеличить до длины varchar(100). Каждое из этих полей имеет индекс (только одно поле является членом). Если я увеличу длину полей varchar, нужно ли будет либо перестраивать индексы (или они будут перестраиваться автоматически), либо статистика станет устаревшей?

У меня нет теста тестовой системы разумного размера (или, возможно, я не знаю, как увидеть, были ли индексы перестроены или статистика должна быть пересчитана).

Спасибо


person Brian    schedule 06.10.2010    source источник


Ответы (1)


Статистика основана на том, что находится в столбцах, а не на их размере, поэтому ваша статистика не устареет.

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

Несмотря на поиск, я не могу категорически сказать, нужно ли вам перестраивать индексы, но я бы перестроил независимо (поскольку это должно происходить как часть вашего обычного обслуживания, предполагая, что эта таблица не доступна только для чтения или очень мало записывает)

Кстати, наличие отдельного индекса для каждого из этих столбцов может быть не оптимальным. Вы профилировали свою рабочую нагрузку запросов?

person Mitch Wheat    schedule 06.10.2010