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

SQL Server - Кога да използвам клъстерен или не-клъстерен индекс?

Искам само да предупредя:моля много внимателно изберете вашия групиран индекс! Всяка „обикновена“ таблица с данни трябва да има клъстериран индекс, тъй като наличието на клъстериран индекс наистина ускорява много операции – да, ускорява , дори вмъква и изтрива! Но само ако изберете добър клъстерен индекс.

Това енай-често копираният структура на данните във вашата база данни на SQL Server. Ключът за клъстериране също ще бъде част от всеки един неклъстериран индекс на вашата таблица.

Трябва да бъдете изключително внимателни, когато избирате ключ за клъстериране - той трябва да бъде:

  • тясно (идеални 4 байта)

  • уникален (в края на краищата това е „указателят на реда“. Ако не го направите уникален, SQL Server ще го направи вместо вас на заден план, като ви струва няколко байта за всеки запис, умножен по броя на редовете и броя на неклъстерираните индекси, които имате - това може да струва много скъпо!)

  • статичен (никога не променяйте - ако е възможно)

  • в идеалния случай постоянно нарастващ така че няма да се окажете с ужасна фрагментация на индекса (GUID е пълната противоположност на добрия ключ за клъстериране - поради тази конкретна причина)

  • трябва да е ненулев и в идеалния случай също с фиксирана ширина - varchar(250) прави много лош ключ за клъстериране

Всичко останало наистина трябва да е второ и трето ниво на важност зад тези точки....

Вижте някои от Кимбърли Трип (Кралицата на индексирането ) публикации в блогове по темата - всичко, което е написала в блога си, е абсолютно безценно - прочетете го, осмислете го - живейте според него!




  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 2005/2008

  2. SQL Server 2014 Инкрементална статистика

  3. Как да ускорите груповото вмъкване в MS SQL Server с помощта на pyodbc

  4. Ограничения на паметта в SQL Server 2016 SP1

  5. SQL Server Collection Inventory Script -1