7

我们的 SQL Server (2005 & 2008) 数据库中有一些表,其列定义为 nvarchar(4000)。我们有时需要能够存储比这更多的数据并考虑使用 nvarchar(max) 代替。现在回答问题。

  1. 我们应该知道任何性能影响吗?
  2. 使用“alter table”进行实际迁移是否安全,还是有其他方法?
  3. 在我们转换之前我们还应该知道什么?

问候约翰

4

2 回答 2

9

我们不得不在几个地方这样做

  1. 我们没有看到任何性能影响,自更改以来已经 5 周了
  2. 只要在转换过程中没有写入表,“更改表”就可以了
  3. 一定要备份以防万一,根据表中的数据量,可能需要一段时间
于 2010-06-02T13:47:13.353 回答
1

如果文本不适合包含其余数据的页面,则文本将存储在另一个页面中。这会导致额外的数据库页面读取。所以性能可以/将会变慢。也许在负载很重且响应时间非常有限的系统上。

SQL Server Management Studio 可能会重命名当前表,使用新布局创建新表,复制数据,删除旧表。这可能很慢。

我不知道alter table 是否会起作用。

于 2010-06-02T13:50:09.187 回答