Преобразование nvarchar (4000) в nvarchar (макс.) - PullRequest
7 голосов
/ 02 июня 2010

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

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

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

Ответы [ 2 ]

9 голосов
/ 02 июня 2010

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

  1. Мы не увидели никаких успехов, прошло 5 недель с момента изменения
  2. «Изменить таблицу» - это нормально, если таблица не записывается во время преобразования
  3. Обязательно создайте резервную копию на всякий случай и в зависимости от объема данных в таблице это может занять некоторое время
1 голос
/ 02 июня 2010

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

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

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

...