Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

sql varchar(max) vs varchar(fix)

MSDN

  • Verwenden Sie varchar, wenn die Größen der Spaltendateneinträge erheblich variieren.
  • Verwenden Sie varchar(max), wenn die Größe der Spaltendateneinträge erheblich variiert und die Größe 8.000 Byte überschreiten könnte.

Wenn die Länge beim Deklarieren eines VARCHAR angegeben wird Variable oder Spalte, die maximal zulässige Länge ist 8000 . Wenn die Länge größer als 8000 ist , müssen Sie den MAX verwenden Bezeichner als Länge. Bei einer Länge größer als 8000 angegeben ist, tritt der folgende Fehler auf (vorausgesetzt, die angegebene Länge ist 10000 ):

UPDATE :-Ich habe einen Link gefunden, den ich teilen möchte:-

Hier

Es gibt keinen großen Leistungsunterschied zwischen Varchar[(n)] und Varchar(Max) . Varchar[(n)] liefert im Vergleich zu Varchar(Max) bessere Leistungsergebnisse . Wenn wir wissen, dass die in der Spalte oder Variablen zu speichernden Daten kleiner oder gleich 8000 Zeichen sind, bietet die Verwendung dieses Varchar[(n)]-Datentyps eine bessere Leistung im Vergleich zu Varchar(Max). Beispiel:Wenn ich das Folgende ausgeführt habe Skript, indem Sie die Variable @FirstName ändern Typ zu Varchar(Max) dann dauert es für 1 Million Zuweisungen durchgehend doppelt so lange wie bei der Verwendung des Datentyps

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