Sqlserver
 sql >> Base de Dados >  >> RDS >> Sqlserver

sql varchar(max) vs varchar(correção)


MSDN
  • Use varchar quando os tamanhos das entradas de dados da coluna variam consideravelmente.
  • Use varchar(max) quando os tamanhos das entradas de dados da coluna variam consideravelmente e o tamanho pode exceder 8.000 bytes.

Quando o comprimento é especificado na declaração de um VARCHAR variável ou coluna, o comprimento máximo permitido é 8000 . Se o comprimento for maior que 8000 , você deve usar o MAX especificador como o comprimento. Se um comprimento maior que 8000 for especificado, o seguinte erro será encontrado (assumindo que o comprimento especificado seja 10000 ):

ATUALIZAÇÃO:-Encontrei um link que gostaria de compartilhar:-

Aqui

Não há muita diferença de desempenho entre Varchar[(n)] e Varchar(Max) . Varchar[(n)] fornece melhores resultados de desempenho em comparação com Varchar(Max) . Se sabemos que os dados a serem armazenados na coluna ou variável são menores ou iguais a 8000 caracteres, então usar este tipo de dados Varchar[(n)] fornece melhor desempenho em comparação com Varchar(Max).Exemplo:Quando executei o abaixo script alterando a variável @FirstName digite para Varchar(Max) então, para 1 milhão de atribuições, está constantemente levando o dobro do tempo do que quando usamos o tipo de dados 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