Преобразование nvarchar(4000) в nvarchar(max)
У нас есть несколько таблиц в нашей базе данных SQL Server (2005 и 2008) со столбцами, определенными как nvarchar(4000). Иногда нам нужно иметь возможность хранить больше данных и рассмотреть возможность использования вместо этого nvarchar(max). Теперь к вопросам.
- Есть ли какие-либо последствия для производительности, о которых мы должны знать?
- Безопасно ли использовать "alter table" для фактической миграции или есть другой способ?
- Что-нибудь еще, что мы должны знать, прежде чем мы обратимся?
С уважением, Йохан
2 ответа
Мы должны были сделать это также в нескольких местах
- Мы не видели хитов производительности, прошло 5 недель с момента изменения
- "Изменить таблицу" хорошо, если во время преобразования в таблицу не записывается
- Убедитесь, что у вас есть резервная копия на всякий случай, и в зависимости от количества данных в таблице это может занять некоторое время.
Если текст не помещается на странице вместе с остальными данными, текст будет сохранен на другой странице. Это вызывает дополнительное чтение страницы базы данных. Таким образом, производительность может / будет ниже. Возможно, в системах с большой нагрузкой и очень ограниченным временем отклика.
Возможно, студия SQL Server Management переименует текущую таблицу, создаст новую с новым макетом, скопирует данные, удалит старую таблицу. Это может быть медленным.
Я не знаю, будет ли работать таблица изменений.