Jag vill bara lägga in ett varningsord:snälla mycket försiktigt välj ditt klustrade index! Varje "vanlig" datatabell borde ha ett klustrat index, eftersom ett klustrat index verkligen påskyndar en hel del operationer - ja, påskyndar , även infogar och raderar! Men bara om du väljer en vara klustrade index.
Det är den mest replikerade datastruktur i din SQL Server-databas. Klustringsnyckeln kommer också att vara en del av varje icke-klustrade index på ditt bord.
Du bör vara extremt försiktig när du väljer en klustringsnyckel - det bör vara:
-
smal (4 byte idealiskt)
-
unikt (det är trots allt "radpekaren". Om du inte gör den unik kommer SQL Server att göra det åt dig i bakgrunden, vilket kostar dig ett par byte för varje post gånger antalet rader och antalet icke-klustrade index du har - detta kan bli mycket kostsamt!)
-
statisk (byt aldrig - om möjligt)
-
helst ständigt ökande så att du inte kommer att sluta med hemsk indexfragmentering (en GUID är den totala motsatsen till en bra klustringsnyckel - av just den anledningen)
-
den ska vara icke-nullbar och helst även fast bredd - en
varchar(250)
gör en mycket dålig klustringsnyckel
Allt annat borde verkligen vara andra och tredje nivå av betydelse bakom dessa punkter ....
Se några av Kimberly Tripps (The Queen of Indexing ) blogginlägg om ämnet - allt hon har skrivit i sin blogg är helt ovärderligt - läs det, smält det - lev efter det!
- GUIDs som PRIMÄRA NYCKLAR och/eller klustringsnyckeln
- Debatten om Clustered Index fortsätter...
- Ständigt ökande klustringsnyckel - The Clustered Index Debate...........igen!
- Diskutrymme är billigt - det är inte poängen!