Quels sont les caractères maximum pour le NVARCHAR (MAX)?

Réponses:

415

La taille maximale d'une colonne de type NVARCHAR(MAX)est de 2 Go de stockage.

Étant donné qu'il NVARCHARutilise 2 octets par caractère, cela représente environ. 1 milliard de caractères.

La guerre et la paix de Leo Tolstoj est un livre de 1'440 pages, contenant environ 600'000 mots - ce qui pourrait faire 6 millions de caractères - bien arrondi. Vous pouvez donc coller environ 166 exemplaires de l'ensemble du livre Guerre et paix dans chaque NVARCHAR(MAX)colonne.

Cet espace est-il suffisant pour vos besoins? :-)

marc_s
la source
18
Juste une pioche. NVARCHAR utilise 2 octets pour la plupart des caractères. Pour les caractères unicode supérieurs à U + 00FFFF. Il utilisera quatre octets.
Eli Algranti
7
C'est de la folie au-delà de Sparta.
MisterGeeky
1
Qu'est-ce que PostgreSQL équivaut à NVCHAR (MAX)?
Pratik
63

Par défaut, les valeurs nvarchar (MAX) sont stockées exactement de la même manière que les valeurs nvarchar (4000), à moins que la longueur réelle ne dépasse 4000 caractères; dans ce cas, les données en ligne sont remplacées par un pointeur vers une ou plusieurs pages séparées où les données sont stockées.

Si vous prévoyez des données dépassant peut-être 4 000 caractères, nvarchar (MAX) est certainement le choix recommandé.

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

Madushan
la source
12
Il n'est également PAS recommandé si vos données ne dépassent jamais 4000 caractères car il y a des problèmes d'indexation.
HLGEM
Je pense que cela est dépassé. Voir la réponse de @marc_s.
Fabio Milheiro
9

De la documentation MSDN

nvarchar [(n | max )]

Données de chaîne Unicode de longueur variable. n définit la longueur de la chaîne et peut être une valeur comprise entre 1 et 4 000. max indique que la taille de stockage maximale est de 2 ^ 31-1 octets (2 Go). La taille de stockage, en octets, est deux fois la longueur réelle des données entrées + 2 octets

JiNish
la source
6

Je pense que nvarchar(MAX)peut réellement stocker environ 1070000000 caractères.

Francisco Javier Larios Soto
la source
Pouvez-vous expliquer où vous obtenez ce chiffre et ce que vous entendez par "avec précision"? (c'est-à-dire que vous dites que ce n'est pas une limite stricte, mais avec plus de personnages, il peut y avoir des problèmes? Quels types de problèmes? Pourquoi?)
Adi Inbar
3
Je ne suis pas sûr, mais je pense que si nvarchar utilise un double espace que varchar pour stocker un caractère, et que le nombre maximal de mémoire pouvant être utilisé par nvarchar (MAX) pour stocker des caractères est 2 ^ 31-1 => 2147483647, alors 2147483647/2 est 1073741824. Je veux dire avec précision que ce n'est pas un nombre exact.
Francisco Javier Larios Soto