Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

sql varchar(max) vs varchar(fix)

MSDN

  • 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ć:-

Tu

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 


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak napisać UPDATE SQL z aliasem tabeli w SQL Server 2008?

  2. Importuj wybrane kolumny z plików CSV do tabeli SQL Server

  3. Nie można skompilować składnika SSIS; Brakujący zespół w Visual Studio 2008

  4. Uzyskaj liczbę przedmiotów i ich wartości w jednej kolumnie

  5. Jaki jest najlepszy sposób przechowywania współrzędnych (długość/szerokość geograficzna, z Google Maps) w SQL Server?