Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

sql varchar(max) vs varchar(correzione)

MSDN

  • Utilizzare varchar quando le dimensioni delle voci di dati della colonna variano notevolmente.
  • Usa varchar(max) quando le dimensioni delle voci di dati della colonna variano considerevolmente e la dimensione potrebbe superare gli 8.000 byte.

Quando viene specificata la lunghezza nella dichiarazione di un VARCHAR variabile o colonna, la lunghezza massima consentita è 8000 . Se la lunghezza è maggiore di 8000 , devi usare il MAX specificatore come la lunghezza. Se una lunghezza maggiore di 8000 viene specificato, si verificherà il seguente errore (supponendo che la lunghezza specificata sia 10000 ):

AGGIORNAMENTO :-Ho trovato un link che vorrei condividere:-

Qui

Non c'è molta differenza di prestazioni tra Varchar[(n)] e Varchar(Max) . Varchar[(n)] fornisce risultati di prestazioni migliori rispetto a Varchar(Max) . Se sappiamo che i dati da archiviare nella colonna o nella variabile sono inferiori o uguali a 8000 caratteri, l'utilizzo di questo tipo di dati Varchar[(n)] offre prestazioni migliori rispetto a Varchar(Max). Esempio:quando ho eseguito quanto segue script modificando la variabile @FirstName digita su Varchar(Max) quindi per 1 milione di compiti ci vuole costantemente il doppio del tempo rispetto a quando usavamo il tipo di dati come

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