Espero que esta publicación te sea de ayuda.
http://geekswithblogs.net/johnsPerfBlog/archive/2008/04/16/ntext-vs-nvarcharmax-in-sql-2005.aspx
Hechos clave:
- Por defecto, TEXT y NTEXT almacenan el valor del texto en la estructura LOB
- Por defecto, NVARCHAR (MAX) almacena el valor de texto en la estructura de la tabla (a menos que sea superior a 8000 bytes)
Cuando modifica la columna de TEXT / NTEXT a NVARCHAR (MAX), la forma en que se almacenan los datos no cambia, solo actualiza los metadatos de la tabla. La estructura de datos solo cambia la próxima vez que se cambia el valor. Esto se puede hacer inmediatamente ejecutando algo como esto:
update mytable set mycolumn1 = mycolumn1
Si utiliza la configuración de opción de tabla predeterminada para NVARCHAR (MAX), los datos en su tabla serán más grandes.
- Tendrá que mirar la configuración de opciones de la mesa y el entorno antes de cambiar la configuración según sus necesidades.
El tamaño de su tabla eventualmente se reducirá si sigue su declaración de alterar tabla con la instrucción de actualización de tabla.
En resumen, si ejecuta la declaración de actualización, obligando a cambiar el almacenamiento de la estructura de datos, el tamaño de su base de datos será menor, como se esperaba.
EDITAR : Como ha mencionado TEXTO y no NTEXT, su ganancia en el espacio sería menos obvia de lo que podría pensar. NTEXT ocupa el doble de espacio que TEXT, pero al mismo tiempo, debe esperar que NVARCHAR (MAX) ocupe aproximadamente la mitad del espacio que NTEXT. Según mis cálculos, vería pocos cambios con respecto al tamaño original de su base de datos.
Crédito especial a http://www.douglubey.com/