sql >> Databáze >  >> RDS >> Sqlserver

Jak jsou hodnoty varchar uloženy v databázi SQL Server?

Naprosto nesmyslné omezení, pokud vidím. Za předpokladu standardní FixedVar formát (na rozdíl od formátů používaných s kompresí řádků/stránek nebo řídkých sloupců) a za předpokladu, že mluvíte o varchar(1-8000) sloupce

Všechny varchar data jsou uložena na konci řádku v sekci s proměnnou délkou (nebo na offrow stránkách, pokud se nevejdou do řádku). Množství místa, které zabere v této sekci (a zda skončí mimo řádek) zcela závisí na délce skutečných dat, nikoli na deklaraci sloupce.

SQL Server použije délku deklarovanou v deklaraci sloupce při přidělování paměti (např. pro sort operace). Předpoklad, který v tomto případě dělá, je, že varchar sloupce budou vyplněny do 50 % jejich deklarované velikosti v průměru takže by mohlo být lepší se na to při výběru velikosti podívat.



  1. Jak se připojit ke třem stolům v Codeigniter

  2. Vypuštění sloupce v Postgresu na velké datové sadě

  3. Jak migrovat databázi MS SQL běžící na vzdáleném počítači do mé místní databáze MySQL běžící na linuxu při zachování kódování

  4. Upravit sloupec versus změnit sloupec