sql >> Database teknologi >  >> RDS >> Sqlserver

Hvordan gemmes varchar-værdier i en SQL Server-database?

Fuldstændig meningsløs begrænsning så vidt jeg kan se. Forudsat standard FixedVar format (i modsætning til de formater, der bruges med række/side-komprimering eller sparsomme kolonner) og antager, at du taler om varchar(1-8000) kolonner

Alle varchar data gemmes i slutningen af ​​rækken i et afsnit med variabel længde (eller på offrow-sider, hvis det ikke kan passe i rækken). Mængden af ​​plads, den bruger i den sektion (og om den ender uden for rækken eller ej) afhænger helt af længden af ​​de faktiske data, ikke kolonneerklæringen.

SQL Server vil bruge længden, der er angivet i kolonneerklæringen, når der tildeles hukommelse (f.eks. til sort operationer). Den antagelse, den gør i det tilfælde, er, at varchar kolonner bliver fyldt til 50 % af deres angivne størrelse i gennemsnit så det er måske en bedre ting at se på, når du vælger en størrelse.



  1. Hvordan ændrer jeg en PostgreSQL-tabel og gør en kolonne unik?

  2. Top n procent top n %

  3. SQL-'08:Er flere Replace-sætninger en dårlig praksis/er der en anden måde at skrive denne forespørgsel på?

  4. Hvordan kan jeg udtrække dele af et Django Postgres DateRangeField