TEXT
y VarChar(MAX)
son grandes tipo no Unicode variable de caracteres de longitud de datos, que puede almacenar máximo de 2147483647 caracteres no Unicode (es decir, la capacidad máxima de almacenamiento: 2 GB).
Como por MSDN link Microfost está sugiriendo evitar el uso del tipo de datos de texto y se eliminará en un futuro versiones de SQL Server. Varchar (Max) es el tipo de datos sugerido para almacenar los valores de cadena grandes en lugar del tipo de datos de texto.
- En fila o de almacenamiento fuera de la fila
datos de una columna Text
tipo se almacena fuera de la fila en una páginas de datos LOB separadas. La fila en la página de datos de la tabla solo tendrá un puntero de 16 bytes en la página de datos LOB donde están presentes los datos reales. Mientras que los datos de una columna de tipo Varchar(max)
se almacenan en filas si son inferiores o iguales a 8000 bytes. Si el valor de la columna Varchar (max) está cruzando los 8000 bytes, el valor de la columna Varchar (max) se almacena en páginas de datos LOB separadas y la fila solo tendrá un puntero de 16 bytes en la página de datos LOB donde están presentes los datos reales. Entonces In-Row
Varchar (Max) es bueno para búsquedas y recuperación.
- soportados funcionalidades/no compatibles
Algunas de las funciones de cadena, operadores o las construcciones que no funciona en la columna de tipo texto, pero funcionan en varchar (max) Tipo de columna .
=
operador Igual a en varchar (max) Tipo de columna
cláusula GROUP BY en varchar (max) Tipo de columna Consideraciones
Como sabemos que los valores de columna tipo VarChar (Max) son almacenado fuera de la fila solo si la longitud del valor que se almacenará en ella es mayor a 8000 bytes o no hay suficiente espacio en la fila, de lo contrario, lo almacenará en la fila.Entonces, si la mayoría de los valores almacenados en la columna VarChar (Max) son grandes y están almacenados fuera de la fila, el comportamiento de recuperación de datos será casi similar al de la columna Tipo de texto.
Pero si la mayoría de los valores almacenados en las columnas de tipos VarChar (Máx) son lo suficientemente pequeños para almacenarlos en filas. Luego, la recuperación de los datos donde las columnas LOB no están incluidas requiere más cantidad de páginas de datos para leer, ya que el valor de la columna LOB se almacena en filas en la misma página de datos donde se almacenan los valores de columnas que no son LOB. Pero si la consulta de selección incluye una columna LOB, entonces requiere menos cantidad de páginas para leer para la recuperación de datos en comparación con las columnas de tipo Texto.
Conclusión
Uso VarChar(MAX)
tipo de datos en lugar de TEXT
para un buen rendimiento.
Source
Este artículo también es útil: http://stackoverflow.com/questions/564755/sql-server-text-type-vs-varchar-data-type – Jake
La mención más importante en ese puesto es un enlace a [documentación de MSDN] (http://msdn.microsoft.com/en-us/library/ms187993.aspx) que muestra que 'TEXT' y' NTEXT' (y 'IMAGE') están en desuso. – Brian
Mira el enlace: http://stackoverflow.com/q/28980502/1805776 – vicky