Teradata - Sekundärindex
Eine Tabelle kann nur einen Primärindex enthalten. Häufiger werden Sie auf Szenarien stoßen, in denen die Tabelle andere Spalten enthält, über die häufig auf die Daten zugegriffen wird. Teradata führt für diese Abfragen einen vollständigen Tabellenscan durch. Sekundärindizes beheben dieses Problem.
Sekundärindizes sind ein alternativer Pfad für den Zugriff auf die Daten. Es gibt einige Unterschiede zwischen dem Primärindex und dem Sekundärindex.
Der Sekundärindex ist nicht an der Datenverteilung beteiligt.
Sekundärindexwerte werden in Untertabellen gespeichert. Diese Tabellen sind in allen AMPs enthalten.
Sekundärindizes sind optional.
Sie können während der Tabellenerstellung oder nach der Erstellung einer Tabelle erstellt werden.
Sie belegen zusätzlichen Platz, da sie Untertabellen erstellen, und sie müssen auch gewartet werden, da die Untertabellen für jede neue Zeile aktualisiert werden müssen.
Es gibt zwei Arten von Sekundärindizes:
- Einzigartiger Sekundärindex (USI)
- Nicht eindeutiger Sekundärindex (NUSI)
Einzigartiger Sekundärindex (USI)
Ein eindeutiger Sekundärindex erlaubt nur eindeutige Werte für die als USI definierten Spalten. Der Zugriff auf die Zeile über USI erfolgt über zwei Ampere.
Erstellen Sie einen eindeutigen Sekundärindex
Im folgenden Beispiel wird USI in der Spalte EmployeeNo der Mitarbeitertabelle erstellt.
CREATE UNIQUE INDEX(EmployeeNo) on employee;
Nicht eindeutiger Sekundärindex (NUSI)
Ein nicht eindeutiger Sekundärindex ermöglicht doppelte Werte für die als NUSI definierten Spalten. Der Zugriff auf die Zeile über NUSI erfolgt über einen All-Amp-Betrieb.
Erstellen Sie einen nicht eindeutigen Sekundärindex
Im folgenden Beispiel wird NUSI in der Spalte Vorname der Mitarbeitertabelle erstellt.
CREATE INDEX(FirstName) on Employee;