Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

SQL Server-Indizes enthalten Primärschlüssel?

Ihr Kollege führt "Primary Key" mit "Clustered Index Key" zusammen (möglicherweise, weil standardmäßig ein PK auf einem Heap erstellt wird, ohne den nonclustered anzugeben Schlüsselwort wird zum gruppierten Index der Tabelle).

Es ist wahr dass in einer Tabelle mit einem gruppierten Index der Wert des gruppierten Indexschlüssels als eingeschlossene Spalte(n) zu allen nicht gruppierten Indizes hinzugefügt wird, um als Zeilenlokator zu fungieren. (obwohl die Spalte(n) nicht zweimal hinzugefügt werden, wenn sie bereits Teil der nicht gruppierten Indexdefinition sind).

Der ideale Clustered-Index-Schlüssel ist

  • eindeutig (Um als Zeilenlokator zu fungieren, muss er eindeutig sein – SQL Server fügt einen Uniquifier hinzu, wenn dies nicht der Fall ist)
  • schmal (wie es in allen nicht geclusterten Indizes reproduziert wird)
  • statisch (Vermeiden Sie es, den Wert an mehreren verschiedenen Stellen zu aktualisieren)
  • immer mehr