- Użyj varchar, gdy rozmiary wpisów danych w kolumnach znacznie się różnią.
- Użyj varchar(max), gdy rozmiary wpisów danych w kolumnach różnią się znacznie, a rozmiar może przekroczyć 8000 bajtów.
Gdy długość jest określona podczas deklarowania VARCHAR
zmienna lub kolumna, maksymalna dozwolona długość to 8000 . Jeśli długość jest większa niż 8000 , musisz użyć MAX
specyfikator jako długość. Jeśli długość jest większa niż 8000 zostanie określony, zostanie napotkany następujący błąd (przy założeniu, że określona długość to 10000 ):
AKTUALIZACJA :-Znalazłem link, którym chciałbym się podzielić:-
Nie ma dużej różnicy w wydajności między Varchar[(n)]
i Varchar(Max)
. Varchar[(n)]
zapewnia lepsze wyniki wydajności w porównaniu do Varchar(Max)
. Jeśli wiemy, że dane, które mają być przechowywane w kolumnie lub zmiennej, są mniejsze lub równe 8000 znaków, to użycie tego typu danych Varchar[(n)] zapewnia lepszą wydajność w porównaniu do Varchar(Max). Przykład:Kiedy uruchomiłem poniższe skrypt, zmieniając zmienną @FirstName
wpisz do Varchar(Max)
następnie dla 1 miliona przypisań zajmuje to konsekwentnie dwa razy więcej czasu niż w przypadku użycia typu danych jako
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