NVARCHAR(MAX)の最大文字数はいくつですか?


回答:


413

タイプの列の最大サイズNVARCHAR(MAX)は2 GBのストレージです。

NVARCHAR1文字あたり2バイトを使用するため、約です。10億文字。

レオ・トルストイの 『戦争と平和』は1'440ページの本で、約600'000語が含まれているため、600万文字になる可能性があります。したがって、戦争と平和の本全体の約166部を各NVARCHAR(MAX)列に挿入できます。

あなたのニーズに十分なスペースがありますか?:-)


17
ほんの少しのピック。NVARCHARは、ほとんどの文字に2バイトを使用します。U + 00FFFFを超えるUnicode文字の場合。4バイトを使用します。
Eli Algranti、2015

7
これはスパルタを超えた狂気です。
MisterGeeky

1
PostgreSQLはNVCHAR(MAX)に相当しますか?
Pratik

63

デフォルトでは、nvarchar(MAX)値は、実際の長さが4000文字を超えない限り、nvarchar(4000)値とまったく同じように格納されます。その場合、行内データは、データが格納されている1つ以上の個別のページへのポインターに置き換えられます。

4000文字を超える可能性のあるデータが予想される場合は、nvarchar(MAX)をお勧めします。

ソース:https : //social.msdn.microsoft.com/Forums/en-US/databasedesign/thread/d5e0c6e5-8e44-4ad5-9591-20dc0ac7a870/


12
インデックス作成の問題があるため、データが4000文字を超えない場合もお勧めしません。
HLGEM 2012年

これは時代遅れだと思います。@marc_sからの回答を参照してください。
ファビオミルヘイロ

9

MSDNドキュメントから

nvarchar [(n | max)]

可変長のUnicode文字列データ。nは文字列の長さを定義し、1〜4,000の値を指定できます。maxは、最大ストレージサイズが2 ^ 31-1バイト(2 GB)であることを示します。ストレージサイズ(バイト単位)は、入力されたデータの実際の長さの2倍+ 2バイトです。


6

実際にnvarchar(MAX)は約1070000000文字を格納できると思います。


その数値をどこで取得しているのか、および「正確に」という意味を説明できますか?(つまり、それはハードリミットではないが、文字数が増えると問題が発生する可能性がありますか?どのような問題ですか?なぜですか?)
Adi Inbar 2014年

3
よくわかりませんが、nvarcharがvarcharよりも2つのスペースを使用してcharを格納し、nvarchar(MAX)がcharを格納するために使用できるメモリの最大数が2 ^ 31-1 => 2147483647である場合、 2147483647/2は1073741824です。正確に言うと、これは正確な数ではありません。
Francisco Javier Larios Soto
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.