sql >> Base de Datos >  >> RDS >> Sqlserver

sql varchar (máximo) vs varchar (arreglar)

MSDN

  • Utilice varchar cuando los tamaños de las entradas de datos de la columna varíen considerablemente.
  • Use varchar(max) cuando los tamaños de las entradas de datos de la columna varíen considerablemente y el tamaño pueda superar los 8000 bytes.

Cuando la longitud se especifica al declarar un VARCHAR variable o columna, la longitud máxima permitida es 8000 . Si la longitud es superior a 8000 , tienes que usar el MAX especificador como la longitud. Si una longitud superior a 8000 se especifica, se encontrará el siguiente error (suponiendo que la longitud especificada es 10000 ):

ACTUALIZACIÓN:-Encontré un enlace que me gustaría compartir:-

Aquí

No hay mucha diferencia de rendimiento entre Varchar[(n)] y Varchar(Max) . Varchar[(n)] proporciona mejores resultados de rendimiento en comparación con Varchar(Max) . Si sabemos que los datos que se almacenarán en la columna o variable son menores o iguales a 8000 caracteres, entonces usar este tipo de datos Varchar[(n)] proporciona un mejor rendimiento en comparación con Varchar(Max). Ejemplo:cuando ejecuté lo siguiente script cambiando la variable @FirstName escriba a Varchar(Max) luego, para 1 millón de asignaciones, toma constantemente el doble de tiempo que cuando usamos el tipo de datos como

Varchar(50) for variable @ FirstName.
DECLARE @FirstName VARCHAR(50), @COUNT INT=0, @StartTime DATETIME = GETDATE()
WHILE(@COUNT < 1000000)
BEGIN
SELECT @FirstName = 'Suraj', @COUNT = @COUNT +1
END
SELECT DATEDIFF(ms,@StartTime,GETDATE()) 'Time Taken in ms'
GO