将nvarchar(4000)转换为nvarchar(max)

7
我们的SQL Server(2005和2008)数据库中有几个表,其中一些列被定义为nvarchar(4000)。我们有时需要存储更多的数据,考虑使用nvarchar(max)。现在有几个问题。
  1. 我们应该知道有什么性能影响吗?
  2. 使用“alter table”进行实际迁移是否安全,还是有其他方法?
  3. 在转换之前还有什么需要知道的吗?
敬礼 Johan
2个回答

9

我们在一些地方也必须这样做。

  1. 我们没有看到任何性能问题,自从改变以来已经5周了。
  2. 只要在转换期间没有写入表格,'Alter table' 是可以的。
  3. 请务必备份以防万一,并且根据表中数据量的大小可能需要一些时间。

5
你的第二点条件值得重复 - 往往需要规划才能实现那种状态。 - Joel Coehoorn

1
如果文本不能放在页面上与其他数据一起显示,文本将存储在另一页中。这会导致额外的数据库页面读取。因此性能可能会变慢。在负载重的系统和非常受限制的响应时间下,也许会更明显。
SQL Server Management Studio可能会重命名当前表,创建具有新布局的新表,拷贝数据,然后移除旧表。 这可能会很慢。
我不知道alter table是否有效。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接