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

Por que não usar varchar (max)?


Minha resposta para isso não é sobre o uso de Max, mas sim sobre o motivo de VARCHAR(max) vs TEXT.

No meu livro; antes de tudo, a menos que você possa ter certeza absoluta de que nunca codificará nada além de texto em inglês e as pessoas não se referirão a nomes de locais estrangeiros, então você deve usar NVARCHAR ou NTEXT.

Em segundo lugar, é o que os campos permitem que você faça.

TEXT é difícil de atualizar em comparação com VARCHAR, mas você obtém a vantagem da Indexação de Texto Completo e muitas coisas inteligentes.

Por outro lado, VARCHAR(MAX) tem alguma ambiguidade, se o tamanho da célula for <8000 caracteres, ela será tratada como dados de linha. Se for maior, será tratado como um LOB para fins de armazenamento. Como você não pode saber isso sem consultar o RBAR, isso pode ter estratégias de otimização para locais onde você precisa ter certeza sobre seus dados e quantas leituras custam.

Caso contrário, se seu uso for relativamente mundano e você não espera ter problemas com o tamanho dos dados (ou seja, você está usando .Net e, portanto, não precisa se preocupar com o tamanho de seus objetos string/char*) então usar VARCHAR(max) está bem.