Ако самата таблица е клъстерирана , тогава всички вторични индекси съдържат копие на ключа за клъстериране (ключ, който определя физическия ред на редовете в клъстерната таблица).
Причината:редовете в клъстерирана таблица са физически съхранени в B-дърво (не купчина таблица) и следователно могат да се преместват когато възлите на B-дървото се разделят или обединят, така че вторичният индекс не може да съдържа просто „указателя“ на реда (тъй като би бил в опасност от „увисване“ след преместването на реда).
Често това има пагубен ефект върху производителността - заявките чрез вторичен индекс може да изискват двойно търсене :
- Първо потърсете вторичния индекс и вземете ключа за клъстериране.
- Второ, въз основа на ключа за клъстериране, извлечен по-горе, потърсете в самата клъстерирана таблица (която е B-дърво).
Ако обаче всичко, което искате, са полетата на ключа за клъстериране, е необходимо само първото търсене.
Известен още като "клъстерен индекс" под MS SQL Server.
Обикновено, но не непременно ПЪРВИЧЕН КЛЮЧ под MS SQL Server.
Жалко е, че клъстерирането е включено по подразбиране под MS SQL Server - хората често просто оставят настройката по подразбиране, без да обмислят напълно нейните ефекти. Когато клъстерирането не е подходящо, трябва изрично да посочите ключова дума NONCLUSTERED, за да го изключите.