Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Защо и кога трябва да използвам SPARSE COLUMN? (SQL SERVER 2008)

Рядката колона не използва 4 пъти повече пространство за да съхранява стойност, той използва (фиксирани) 4 допълнителни байта за ненулева стойност. (Както вече казахте, NULL заема 0 интервал.)

  • Така че ненулева стойност, съхранена в бит колоната ще бъде 1 бит + 4 байта =4,125 байта. Но ако 99% от тях са NULL, това пак е нетна икономия.

  • Ненулева стойност, съхранена в GUID (UniqueIdentifier) колоната е 16 байта + 4 байта =20 байта. Така че, ако само 50% от тях са NULL, това все още е нетна икономия.

Така че „очакваните спестявания“ зависят силно от това какъв вид от колоната, за която говорим, и вашата оценка за това кое съотношение ще бъде нулево спрямо ненулево. Колоните с променлива ширина (varchars) вероятно са малко по-трудни за точно прогнозиране.

Тази онлайн страница с книги има таблица, показваща какъв процент на различните типове данни трябва да е нула, за да получите полза.

И така, кога трябва ли да използвате рядка колона? Когато очаквате значителен процент от редовете да имат стойност NULL. Някои примери, които идват на ум:

  • А „Дата на връщане на поръчка " колона в таблица за поръчки. Бихте се надявали, че много малък процент от продажбите ще доведе до върнати продукти.
  • А „4-ти адрес " ред в таблица с адреси. Повечето пощенски адреси, дори ако имате нужда от име на отдел и "Грижа за" вероятно не се нуждаят от 4 отделни реда.
  • А "Суфикс " колона в таблица с клиенти. Доста нисък процент от хората имат "младши" или "III" или "Esquire" след името си.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Връщане на номера на дял за всеки ред при запитване на разделена таблица в SQL Server (T-SQL)

  2. Брой пъти, когато даден знак се появява в низ

  3. C# Еквивалент на SQL Server DataTypes

  4. sql сървър невалидно име на обект - но таблиците са изброени в списъка с SSMS таблици

  5. Топ 5 факта за намиране и замяна на SQL текстове в SQL Server с функция REPLACE