2010-06-02 200 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. 请确保备份以防万一,并根据表中可能需要的数据量hile
+5

您的第二点的条件值得重复 - 它通常需要计划达到该状态。 – 2010-06-02 13:49:14

1

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

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

我不知道alter table是否可以工作。