¿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? :-)


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/


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


6

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


¿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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.