Click here to view and discuss this page in DocCommentXchange. In the future, you will be sent there automatically.

SQL Anywhere 11.0.1 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Abfrageverarbeitung » Abfragen optimieren und ausführen » Abfrageperformance verbessern » Indizes

 

Indizes mithilfe von logischen Indizes gemeinsam nutzen

SQL Anywhere verwendet physische und logische Indizes. Ein physischer Index ist die tatsächliche Indexstruktur, wie sie auf der Festplatte gespeichert ist. Ein logischer Index ist eine Referenz auf einen physischen Index. Wenn Sie einen Primärschlüssel, Sekundärschlüssel, Fremdschlüssel oder eine Eindeutigkeits-Integritätsregel erstellen, gewährleistet der Datenbankserver referenzielle Integrität, indem er einen logischen Index für die Integritätsregel erstellt. Dann prüft der Datenbankserver, ob bereits ein physischer Index vorhanden ist, der die Integritätsregel erfüllt. Falls bereits ein qualifizierter physischer Index vorhanden ist, verweist der Datenbankserver den logischen Index auf diesen physischen Index. Falls kein solcher Index vorhanden ist, erstellt der Datenbankserver einen neuen physischen Index und verweist den logischen Index auf den physischen Index.

Damit ein physischer Index die Anforderungen eines logischen Indexes erfüllt, müssen die Spalten, die Spaltenreihenfolge und die Sortierfolge (aufsteigend, absteigend) der Daten bei jeder Spalte identisch sein.

In den Systemtabellen ISYSIDX und ISYSPHYSIDX werden Informationen über alle logischen und physischen Indizes der Datenbank aufgezeichnet. Wenn Sie einen logischen Index erstellen, wird ein Eintrag in die Systemtabelle ISYSIDX eingefügt, der die Indexdefinition enthält. In der Spalte ISYSIDX.phys_id wird ein Verweis auf den physischen Index aufgezeichnet, der die Anforderungen des logischen Indexes erfüllt. Der physische Index wird in der Systemtabelle ISYSPHYSIDX definiert.

Weitere Informationen zu den Systemtabellen ISYSIDX und ISYSPHYSIDX finden Sie in den zugehörigen Ansichten SYSIDX-Systemansicht und SYSPHYSIDX-Systemansicht.

Durch die Verwendung logischer Indizes braucht der Datenbankserver keine doppelten physischen Indizes zu erstellen und zu verwalten, weil mehrere logische Indizes auf einen einzelnen physischen Index verweisen können.

Wenn Sie einen logischen Index löschen, wird seine Definition aus der Systemtabelle ISYSIDX entfernt. Falls es sich dabei um den einzigen logischen Index handelt, der auf einen bestimmten physischen Index verweist, werden der physische Index und seine zugehörigen Einträge in der Systemtabelle ISYSPHYSIDX gelöscht.

Sie sollten immer sorgfältig recherchieren, ob ein Index erforderlich ist, bevor Sie ihn erstellen. Weitere Hinweise finden Sie unter Wann sollte ein Index erstellt werden.

Für entfernte Tabellen werden keine physischen Indizes erstellt. Für temporäre Tabellen werden physische Indizes erstellt, jedoch werden sie nicht in ISYSPHYSIDX aufgezeichnet, und nach der Verwendung werden sie gelöscht. Weiterhin werden physische Indizes für temporäre Tabellen nicht gemeinsam genutzt.