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

Müssen Clustered-Indizes eindeutig sein?

Sie haben nicht eindeutig sein, aber es wird auf jeden Fall empfohlen.
Ich bin noch nicht auf ein Szenario gestoßen, in dem ich ein CI für eine nicht eindeutige Spalte erstellen wollte.

Was passiert, wenn Sie ein CI für eine nicht eindeutige Spalte erstellen

Führt dies zu einer schlechten Leistung?

Hinzufügen eines Uniqueifier sicherlich erhöht sich der Overhead bei der Berechnung und Speicherung.
Ob dieser Overhead bemerkbar wird, hängt von mehreren Faktoren ab.

  • Wie viele Daten die Tabelle enthält.
  • Wie hoch ist die Beilagenrate?
  • Wie oft wird das CI in einer Auswahl verwendet (wenn keine abdeckenden Indizes vorhanden sind, so ziemlich immer).

Bearbeiten
Wie Remus in Kommentaren darauf hingewiesen hat, gibt es Anwendungsfälle, in denen die Erstellung eines nicht eindeutigen CI eine vernünftige Wahl wäre. Dass ich keinem dieser Szenarien begegnet bin, zeigt lediglich meinen eigenen Mangel an Erfahrung oder Kompetenz (wählen Sie Ihre Wahl).