¿Cuál es el máximo de caracteres para el NVARCHAR (MAX)?

Respuestas:

413

El tamaño máximo para una columna de tipo NVARCHAR(MAX)es de 2 GByte de almacenamiento.

Como NVARCHARusa 2 bytes por carácter, eso es aprox. Mil millones de caracteres.

Guerra y paz de Leo Tolstoj es un libro de 1'440 páginas, que contiene alrededor de 600'000 palabras, por lo que podrían ser 6 millones de caracteres, bien redondeado. Para que puedas pegar alrededor de 166 copias de todo el libro de Guerra y Paz en cada NVARCHAR(MAX)columna.

¿Es suficiente espacio para tus necesidades? :-)

marc_s
fuente
17
Solo un piojo. NVARCHAR usa 2 bytes para la mayoría de los caracteres. Para caracteres unicode sobre U + 00FFFF. Utilizará cuatro bytes.
Eli Algranti
77
Esto es una locura más allá de la esparta.
MisterGeeky
1
¿Qué es PostgreSQL equivalente a NVCHAR (MAX)?
Pratik
63

Por defecto, los valores de nvarchar (MAX) se almacenan exactamente igual que los valores de nvarchar (4000), a menos que la longitud real supere los 4000 caracteres; en ese caso, los datos en fila se reemplazan por un puntero a una o más páginas separadas donde se almacenan los datos.

Si anticipa datos que posiblemente superen los 4000 caracteres, nvarchar (MAX) es definitivamente la opción recomendada.

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

Madushan
fuente
12
Tampoco se recomienda si sus datos nunca superarán los 4000 caracteres, ya que existen problemas de indexación.
HLGEM
Creo que esto está desactualizado. Ver respuesta de @marc_s.
Fabio Milheiro
9

De la documentación de MSDN

nvarchar [(n | max )]

Datos de cadena Unicode de longitud variable. n define la longitud de la cadena y puede ser un valor de 1 a 4,000. max indica que el tamaño máximo de almacenamiento es 2 ^ 31-1 bytes (2 GB). El tamaño de almacenamiento, en bytes, es dos veces la longitud real de los datos ingresados ​​+ 2 bytes

JiNish
fuente
6

Creo que en realidad nvarchar(MAX)puede almacenar aproximadamente 1070000000 caracteres.

Francisco Javier Larios Soto
fuente
¿Puede explicar de dónde obtiene ese número y qué quiere decir con "precisión"? (es decir, ¿estás diciendo que no es un límite difícil, pero con más personajes puede haber problemas? ¿Qué tipo de problemas? ¿Por qué?)
Adi Inbar
3
No estoy seguro, pero creo que si nvarchar usa el doble espacio que varchar para almacenar un carácter, y el número máximo de memoria que puede utilizar nvarchar (MAX) para almacenar caracteres es 2 ^ 31-1 => 2147483647, entonces 2147483647/2 es 1073741824. con precisión quiero decir que no es un número exacto.
Francisco Javier Larios Soto