我有一个目前有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 TABLE SET Column = Column,我们将获得非常大的性能提升.
我遇到的问题是数据库由数百个这样的列组成,数百万条记录.一个简单的测试(在一个低性能的虚拟机上)有一个包含700万条记录的单个NTEXT列的表需要5个小时更新.
有人可以提出任何建议,以便如何以更有效的方式更新数据,从而最大限度地减少停机时间和锁定时间?
编辑:我的备份解决方案是随着时间的推移更新块中的数据,但是,随着数据的增加,性能下降,直到所有的记录都被更新,这个时间越短越好,所以我仍然在寻找一个更快的更新方式.