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

 

Ermitteln, welche logischen Indizes einen physischen Index gemeinsam nutzen

Wenn Sie einen Index löschen, wird der logische Index gelöscht. Der physische Index, auf den er sich bezieht, wird jedoch nicht in allen Fällen gelöscht. Wenn sich ein anderer logischer Index auf denselben physischen Index bezieht, wird der physische Index nicht gelöscht. Es ist wichtig, dies zu wissen, besonders dann, wenn Sie den Index löschen, um Platz auf der Platte freizugeben oder um den Index physisch neu aufzubauen.

Sie können feststellen, ob ein Index für eine Tabelle einen physischen Index gemeinsam mit anderen Indizes nutzt, indem Sie in Sybase Central die Tabelle auswählen und auf das Register Indizes klicken. Achten Sie darauf, ob der Wert für "Phys. -ID" auch bei anderen Indizes in der Liste erscheint. Übereinstimmende Werte für "Phys.-ID" bedeuten, dass diese Indizes denselben physischen Index nutzen. Wenn Sie einen physischen Index neu erstellen wollen, können Sie die Anweisung ALTER INDEX ... REBUILD verwenden. Alternativ können Sie auch alle Indizes löschen und dann neu erstellen.

Tabellen ermitteln, in denen physische Indizes gemeinsam genutzt werden

Sie können jederzeit eine Liste der Tabellen abrufen, in denen physische Indizes gemeinsam genutzt werden, indem Sie eine Abfrage wie die folgende ausführen:

SELECT tab.table_name, idx.table_id, phys.phys_index_id, COUNT(*) 
 FROM SYSIDX idx JOIN SYSTAB tab ON (idx.table_id = tab.table_id)
 JOIN SYSPHYSIDX phys ON ( idx.phys_index_id  = phys.phys_index_id 
   AND idx.table_id = phys.table_id )
 GROUP BY tab.table_name, idx.table_id, phys.phys_index_id
   HAVING COUNT(*) > 1
ORDER BY tab.table_name;

Es folgt ein Beispielergebnis für die Abfrage:

table_name table_id phys_index_id COUNT( * )
ISYSCHECK 57 0 2
ISYSCOLSTAT 50 0 2
ISYSFKEY 6 0 2
ISYSSOURCE 58 0 2
MAINLIST 94 0 3
MAINLIST 94 1 2

Die Anzahl der Zeilen einer Tabelle gibt an, wie viele gemeinsam genutzte physische Indizes es für diese Tabelle gibt. In diesem Beispiel verfügen alle Tabellen über einen gemeinsam genutzten physischen Index, außer der fiktiven Tabelle MAINLIST, die über zwei Indizes verfügt. Der Wert in "phys_index_id" zeigt an, welcher physische Index gemeinsam genutzt wird. Der Wert in der Spalte COUNT gibt an, wie viele logische Indizes den physischen Index gemeinsam nutzen.

Sie können mit Sybase Central auch festzustellen, welche Indizes einer bestimmten Tabelle einen physischen Index gemeinsam nutzen. Wählen Sie dazu im linken Fensterausschnitt die Tabelle aus und klicken Sie im rechten Ausschnitt auf das Register Indizes. Suchen Sie dann nach mehreren Zeilen mit dem gleichen Wert in der Spalte. ID-Spalte. Indizes mit dem gleichen Wert in "Phys.-ID" nutzen denselben physischen Index.

Siehe auch