Преобразование nvarchar(4000) в nvarchar(max)

У нас есть несколько таблиц в нашей базе данных SQL Server (2005 и 2008) со столбцами, определенными как nvarchar(4000). Иногда нам нужно иметь возможность хранить больше данных и рассмотреть возможность использования вместо этого nvarchar(max). Теперь к вопросам.

  1. Есть ли какие-либо последствия для производительности, о которых мы должны знать?
  2. Безопасно ли использовать "alter table" для фактической миграции или есть другой способ?
  3. Что-нибудь еще, что мы должны знать, прежде чем мы обратимся?

С уважением, Йохан

2 ответа

Решение

Мы должны были сделать это также в нескольких местах

  1. Мы не видели хитов производительности, прошло 5 недель с момента изменения
  2. "Изменить таблицу" хорошо, если во время преобразования в таблицу не записывается
  3. Убедитесь, что у вас есть резервная копия на всякий случай, и в зависимости от количества данных в таблице это может занять некоторое время.

Если текст не помещается на странице вместе с остальными данными, текст будет сохранен на другой странице. Это вызывает дополнительное чтение страницы базы данных. Таким образом, производительность может / будет ниже. Возможно, в системах с большой нагрузкой и очень ограниченным временем отклика.

Возможно, студия SQL Server Management переименует текущую таблицу, создаст новую с новым макетом, скопирует данные, удалит старую таблицу. Это может быть медленным.

Я не знаю, будет ли работать таблица изменений.

Другие вопросы по тегам