sql >> Database >  >> RDS >> Sqlserver

sql varchar(max) versus varchar(fix)

MSDN

  • Gebruik varchar wanneer de grootte van de kolomgegevensinvoer aanzienlijk varieert.
  • Gebruik varchar(max) wanneer de grootte van de kolomgegevensinvoer aanzienlijk varieert, en de grootte kan groter zijn dan 8.000 bytes.

Als de lengte is opgegeven bij het declareren van een VARCHAR variabele of kolom, de maximaal toegestane lengte is 8000 . Als de lengte groter is dan 8000 , moet u de MAX . gebruiken specificeerder als de lengte. Als een lengte groter is dan 8000 is opgegeven, treedt de volgende fout op (ervan uitgaande dat de opgegeven lengte 10000 is) ):

UPDATE:-Ik heb een link gevonden die ik wil delen:-

Hier

Er is niet veel prestatieverschil tussen Varchar[(n)] en Varchar(Max) . Varchar[(n)] biedt betere prestatieresultaten in vergelijking met Varchar(Max) . Als we weten dat de gegevens die in de kolom of variabele moeten worden opgeslagen, kleiner zijn dan of gelijk zijn aan 8000 tekens, biedt het gebruik van dit Varchar[(n)]-gegevenstype betere prestaties in vergelijking met Varchar(Max). Voorbeeld:toen ik het onderstaande uitvoerde script door de variabele @FirstName te wijzigen typ naar Varchar(Max) dan kost het voor 1 miljoen opdrachten consequent dubbele tijd dan wanneer we datatype gebruikten als

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 


  1. Wat is de beste werkwijze voor primaire sleutels in tabellen?

  2. Hoe krijg ik de laatste dag van een maand vanaf een bepaalde datum?

  3. Oracle-conversie van UNIX-tijdstempel naar tijdstempel met tijdzone

  4. Oracle 12c Apex 4.2 ORA-24247 netwerktoegang geweigerd door toegangscontrolelijst (ACL)