在什么时候使用文本字段比在SQL Server中的nvarchar字段更有效?

sma*_*man 1 sql t-sql sql-server nvarchar sql-server-2005

在最好在SQL Server中使用文本字段之前,nvarchar字段需要多长时间?将一个或另一个用于可能会或可能不会被查询的文本内容的一般指示是什么?

Jer*_*ose 7

据我所知,TEXT数据类型永远不应该在SQL 2005+中使用.你应该开始使用VARCHAR(MAX).

看到关于vs.的这个问题.VARCHAR(MAX)TEXT

更新(每条评论):

这篇博客在解释优势方面做得很好.取自它:

但是在尝试查询时会出现使用类型文本的痛苦.例如,不可能按文本类型进行分组.

使用文本类型的另一个缺点是增加了磁盘IO,因为每个记录现在都指向blob(或文件).

所以基本上,VARCHAR(MAX)保持与记录的数据,使您能够像对待其他的能力VARCHAR类型,如使用GROUP BY和字符串函数(LEN,CHARINDEX,等).

因为TEXT,您几乎总是必须将其转换VARCHAR为使用函数来对付它.

但回到关于效率的问题的根源,我认为使用TEXTvs. 效率并不高VARCHAR(MAX).查看此MSDN文章(搜索"数据类型")TEXT已弃用,应替换为VARCHAR(MAX).