sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Server-index inkluderar primärnyckel?

Din medarbetare blandar ihop "Primärnyckel" med "klustrad indexnyckel" (möjligen för att en PK som standard skapas på en hög utan att ange nonclustered nyckelordet blir tabellens klustrade index).

Det är sant att på en tabell med ett klustrade index kommer värdet av den klustrade indexnyckeln att läggas till som inkluderade kolumner till alla icke-klustrade index för att fungera som radlokalisering. (även om kolumnen/kolumnerna inte kommer att läggas till två gånger om de redan ingår i den icke-klustrade indexdefinitionen).

Den idealiska klustrade indexnyckeln är

  • unik (för att fungera som en radlokaliserare måste den vara unik - SQL Server lägger till en uniquiifier om den inte är det)
  • smal (som det återges i alla icke-klustrade index)
  • statisk (Undvik att behöva uppdatera värdet på flera olika platser)
  • ständigt ökande



  1. php mysql sortera resultat efter ordning hämtade

  2. Konvertera kolumnsortering till standard för tabell/databas

  3. Hur man hämtar flera rader från en lagrad funktion med oracle

  4. Hur man lägger raden överst i mysql-frågan.