違い - sqlserver 最大 文字数




nvarchar(50)とnvarchar(max)の関係 (2)

唯一の違いがnvarchar(50)nvarchar(max)で、各フィールドの文字列の範囲が1〜50文字の場合、以下の2つの表の一般的な記憶域とパフォーマンスの違いは何ですか? これはSQL Server 2005にあります。

表1

firstname nvarchar (50)
lastname nvarchar (50)
username nvarchar (50)

表2

firstname nvarchar (max)
lastname nvarchar (max)
username nvarchar (max)

1〜50文字の文字列を使用することが保証されている場合は、varchar(X)とvarchar(MAX)を使用して、長さが最大のXの文字列で実行される同じクエリが高速に実行されます。 また、varchar(MAX)フィールドにインデックスを作成することはできません。

行の長さが8000文字を超えると、競合する追加のパフォーマンス上の考慮事項があります(行は基本的にvarchar(n)ではなくTEXTとして扱われます)。 8000以上の長さの文字列にはvarchar(N)オプションがないので、これは比較としてはあまり重要ではありませんが。


nvarchar maxは2GBまでの列用です。 したがって本質的にそれはより多くのリソースを消費します。 あなたは、多くのスペースを必要としないことが分かっている場合は、nvarchar(50)を使用する方が良いです。 各文字は約2バイトなので、2GBは10億文字です...





sql-server-2005