我有一个数据库,其中有许多字段当前都是NTEXT类型。
升级到SQL 2005后,我们对将其转换为NVARCHAR(MAX)进行了一些性能测试。
如果您阅读本文章:
http://geekswithblogs.net/johnsPerfBlog/archive/2008/04/16/ntext-vs-nvarcharmax-in-sql-2005.aspx
它解释了简单的 ALTER COLUMN 操作不会重新组织数据为行。
我对此进行了验证。如果仅运行 ALTER COLUMN,某些区域实际上表现更糟糕。然而,如果我对这些字段运行 UPDATE 表 SET 列 = 列,我们就会获得极大的性能提升。
我的问题在于该数据库包含数百个具有数百万条记录的这些列。在低性能虚拟机上进行的简单测试(一个只包含1个NTEXT列、7百万条记录的表)需要5个小时才能完成更新。
是否有人可以提供任何建议,以更有效地更新数据,减少停机时间和锁定?
编辑:我的备份解决方案是随时间分块更新数据,但对于我们的数据,这会导致性能更差,直到所有记录都已更新。因此,我仍在寻找更快的方法来更新数据。