【问题标题】:Converting nvarchar(4000) to nvarchar(max)将 nvarchar(4000) 转换为 nvarchar(max)
【发布时间】:2010-06-02 13:42:21
【问题描述】:

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

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

问候 约翰

【问题讨论】:

    标签: sql-server database nvarchar


    【解决方案1】:

    我们不得不在一些地方也这样做

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

    【讨论】:

    • 第二点的条件值得重复——通常需要计划才能达到这种状态。
    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2021-06-26
      • 1970-01-01
      • 1970-01-01
      • 2020-12-26
      • 1970-01-01
      • 1970-01-01
      • 2021-05-30
      • 2018-06-08
      • 2022-01-19
      相关资源
      最近更新 更多