Einführung
In der SQL Server-Entwicklung war es schon immer eine häufige Frage, ob Tabellenvariablen Indizes erstellen können. Dieser Artikel befasst sich mit den Details von Tabellenvariablenindizes und konzentriert sich dabei auf SQL Server 2000.
Können Indizes für Tabellenvariablen erstellt werden?
Für SQL Server 2000 lautet die Antwort „Ja“. Indizes können für Tabellenvariablen mithilfe impliziter Methoden erstellt werden, hauptsächlich durch die Verwendung von Einschränkungen für eindeutige Schlüssel oder Primärschlüssel.
Einschränkungsbasierte Indizierung
Sowohl eindeutige Schlüssel- als auch Primärschlüsseleinschränkungen erstellen implizit eindeutige Indizes. Der Unterschied besteht in der Zulässigkeit von Nullwerten für teilnehmende Spalten. Der Primärschlüssel muss für eine Spalte mit einem Nicht-Nullwert definiert werden, und die eindeutige Einschränkung lässt Nullwertspalten zu.
Indexattribut angeben
Während die physische Implementierung eines durch eine Einschränkung erstellten Index durch einen Standardwert bestimmt wird, kann dieser durch explizite Angabe der Option CLUSTERED oder NONCLUSTERED in der Einschränkungsdeklaration überschrieben werden. Dies ermöglicht eine gewisse Kontrolle über die Art des erstellten Index.
Verschiedene Arten von Indizes
In SQL Server 2000 – 2012 können die folgenden Arten von Indizes implizit für Tabellenvariablen erstellt werden:
Sie können Einschränkungen nicht verwenden, um nicht eindeutige gruppierte und nicht gruppierte Indizes für Tabellenvariablen direkt zu erstellen.
Lösung für nicht eindeutigen, nicht gruppierten Index
Um einen nicht eindeutigen, nicht gruppierten Index zu simulieren, erstellen Sie einen eindeutigen Index für eine Kombination aus der relevanten Spalte und dem gruppierten Indexschlüssel (der gruppierte Indexschlüssel wird ohnehin automatisch zu einem nicht eindeutigen Index hinzugefügt).
Eindeutige Kennung manuell hinzufügen
Für nicht eindeutige Clustered-Indizes können Sie manuell eine IDENTITY-Spalte als eindeutige Kennung hinzufügen. Dies entspricht jedoch nicht genau einem nicht eindeutigen Clustered-Index, da es sich auf alle Zeilen auswirkt, nicht nur auf die Zeilen, die Eindeutigkeit erfordern.
Fazit
In SQL Server 2000 können Sie mithilfe eines auf Einschränkungen basierenden Ansatzes Indizes für Tabellenvariablen erstellen. Das Verständnis der verschiedenen Arten von Indizes und ihrer impliziten Implementierung kann dabei helfen, Abfragen mit Tabellenvariablen zu optimieren.
Das obige ist der detaillierte Inhalt vonKönnen Sie Indizes für SQL Server 2000-Tabellenvariablen erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!