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

Proč a kdy bych měl používat ŘÍDKÝ SLOUPEC? (SQL SERVER 2008)

Řídký sloupec nezabere 4x více místa k uložení hodnoty používá (pevné) 4 bajty navíc za nenulovou hodnotu. (Jak jste již uvedli, NULL zabírá 0 místa.)

  • Tedy nenulová hodnota uložená v bitu sloupec by byl 1 bit + 4 bajty =4,125 bajtů. Ale pokud je 99 % z nich NULL, stále jde o čisté úspory.

  • Hodnota, která není nulová, uložená v GUID (UniqueIdentifier) sloupec je 16 bajtů + 4 bajty =20 bajtů. Pokud je tedy pouze 50 % z nich NULL, stále jde o čisté úspory.

„Očekávané úspory“ tedy silně závisí na tom, jakého druhu sloupce, o kterém mluvíme, a váš odhad toho, jaký poměr bude nulový a nenulový. Sloupce s proměnnou šířkou (varchars) je pravděpodobně trochu obtížnější přesně předvídat.

Tato stránka Books Online obsahuje tabulku ukazující jaké procento různých datových typů by musel být nulový, abyste nakonec získali výhodu.

Takže kdy měli byste použít řídký sloupec? Když očekáváte, že významné procento řádků bude mít hodnotu NULL. Některé příklady, které vás napadnou:

  • A „Datum vrácení objednávky " v tabulce objednávek. Doufali byste, že velmi malé procento prodeje povede k vráceným produktům.
  • A „4. adresa " řádek v tabulce adres. Většina poštovních adres, i když potřebujete název oddělení a "Care Of", pravděpodobně nepotřebuje 4 samostatné řádky.
  • A „Přípona " v tabulce zákazníků. Poměrně nízké procento lidí má za jménem "Jr." nebo "III" nebo "Esquire".


  1. Import ze souborů a export do souborů pomocí příkazového řádku MySQL

  2. Jak vložit zalomení řádku do řetězce SQL Server VARCHAR/NVARCHAR

  3. Extrahujte měsíc z data v PostgreSQL

  4. SQL Server Transakční replikace interní