2010-06-02 5 views
6

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

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

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

ответ

8

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

  1. Мы не видели каких-либо хитов производительности, его было 5 недель с момента изменения
  2. «Alter table» отлично до тех пор, пока таблица не будет записана во время конверсии
  3. Обязательно наличие резервной копии на всякий случай и в зависимости от количества данных в таблице может потребоваться aw hile
+5

Состояние на втором пункте стоит повторить - часто требуется планирование для достижения этого состояния. –

1

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

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

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