- Använd varchar när storleken på kolumndataposterna varierar avsevärt.
- Använd varchar(max) när storleken på kolumndataposterna varierar avsevärt och storleken kan överstiga 8 000 byte.
När längden anges för att deklarera en VARCHAR
variabel eller kolumn, den maximala tillåtna längden är 8000 . Om längden är större än 8000 måste du använda MAX
specificering som längden. Om en längd som är större än 8000 anges, kommer följande fel att uppstå (förutsatt att den angivna längden är 10000 ):
UPPDATERING :-Jag hittade en länk som jag skulle vilja dela:-
Det är inte mycket prestandaskillnad mellan Varchar[(n)]
och Varchar(Max)
. Varchar[(n)]
ger bättre prestandaresultat jämfört med Varchar(Max)
. Om vi vet att data som ska lagras i kolumnen eller variabeln är mindre än eller lika med 8 000 tecken, ger användning av denna Varchar[(n)] datatyp bättre prestanda jämfört med Varchar(Max). Exempel:När jag körde nedanstående skript genom att ändra variabeln @FirstName
skriv till Varchar(Max)
sedan för 1 miljon uppdrag tar det konsekvent dubbel tid än när vi använde datatyp som
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