2011-06-26 8 views
9

nvarcharの結合は、各文字に対して2バイトを使用するが、intは常に4バイトであるため、インデックスが大きいため、結合パフォーマンスの違いは重要ですか? nvarcharへの参加を避ける強い理由はありますか?トピックに関するMSDNの記事が見つかりませんでした。nvarcharとintの結合時のパフォーマンスの差はどれくらいですか

+0

パフォーマンスの差はごくわずかですが、実際には特定のケースで試してみるべきです。 – Sjoerd

+2

@Sjoerd:数十行以上、はい。それ以外の場合は*巨大になります – gbn

答えて

11

少なくとも8x CPU。これは、varcharよりもnvarcharを比較する際の測定可能な増加です。つまり、Unicodeのソートと比較のルールは、まっすぐなvarcharより複雑です。したがって

、NVARCHARオーバーヘッド、そしてバイトのバイトを

をintに比較しているであろう(そうでない)VARCHARおよびINTが等しいと仮定すると( '1234 '対1234)あなたは10バイト対4バイトを比較しています。これはまた、ページあたりのインデックスおよびデータエントリが少なくてすみ、IOを増やすためのより広いキーを意味します。

最後に、nvarcharが450文字を超える場合、インデックスキーは最大900バイトの幅なので、インデックスできません。

関連する問題