sql >> Databasteknik >  >> RDS >> Sqlserver

Hur lagras varchar-värden i en SQL Server-databas?

Helt meningslös begränsning så vitt jag kan se. Förutsatt standard FixedVar format (till skillnad från formaten som används med rad-/sida-komprimering eller glesa kolumner) och förutsatt att du talar om varchar(1-8000) kolumner

Alla varchar data lagras i slutet av raden i en sektion med variabel längd (eller på offrow-sidor om den inte får plats i raden). Mängden utrymme den förbrukar i det avsnittet (och om det hamnar utanför raden eller inte) är helt beroende av längden på den faktiska datan, inte kolumndeklarationen.

SQL Server kommer att använda längden som deklareras i kolumndeklarationen vid allokering av minne (t.ex. för sort operationer). Antagandet det gör i det fallet är att varchar kolumner kommer att fyllas till 50 % av deras deklarerade storlek i genomsnitt så det här kan vara en bättre sak att titta på när du väljer en storlek.



  1. MySQL-replikering med ProxySQL på WHM/cPanel-servrar:Del ett

  2. 10 SP_EXECUTESQL Gotchas att undvika för bättre dynamisk SQL

  3. Återställande av kapslade transaktionsöverföringsfel i TSQL

  4. json-fältet på mysql where klausul