加入nvarchar与int相比,性能差异有多大

时间:2011-06-26 12:12:59

标签: sql sql-server sql-server-2005 sql-server-2008

据我所知,nvarchar上的连接速度较慢,因为索引比nvarchar更大,每个字符使用2个字节,但int始终为4个字节。连接性能差异是否显着?是否有任何强有力的理由避免加入nvarchar?我找不到任何有关该主题的MSDN文章。

1 个答案:

答案 0 :(得分:12)

至少8倍CPU。这是比较nvarchar而不是varchar的可测量增加:unicode排序和比较规则比直接varchar更复杂。

因此,假设varchar和int相等(它们不是),与int相比,nvarchar将有开销

然后,字节为字节('1234'对比1234),您要比较10个字节对4个字节。这也意味着更宽的键,每页索引和数据输入更少=更多IO。

最后,如果您的nvarchar超过450个字符,则无法对其进行索引,因为索引键的最大宽度为900字节。