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 » Performance der Datenbank überwachen und steigern » Datenbankperformance steigern » Tipps zur Performance-Verbesserung

 

Indexfragmentierung und -schiefe (Skew) reduzieren

Indizes sollen Suchvorgänge in bestimmten Spalten beschleunigen. Sie können jedoch fragmentiert (weniger dicht) werden oder eine Schiefe zeigen (unausgewogen werden), wenn viele Löschvorgänge in der indizierten Tabelle ausgeführt werden.

Die Indexdichte gibt an, wie voll die Indexseiten durchschnittlich sind. Die Schiefe eines Indexes zeigt die typische Abweichung von der durchschnittlichen Dichte an. Die Größe der Schiefe ist für den Optimierer wichtig, wenn er Selektivitätsschätzungen vornimmt.

Um zu ermitteln, ob Ihre Datenbank Indizes enthält, die nicht akzeptable Ausmaße an Fragmentierung oder Schiefe haben, verwenden Sie den Assistenten für die Anwendungsprofilerstellung. Weitere Hinweise finden Sie unter Assistent für die Anwendungsprofilerstellung.

Sie können auch die Systemprozedur "sa_index_fragmentation" verwenden, um das Ausmaß von Indexfragmentierung und -schiefe zu überprüfen. Beispiel: Die folgende Anweisung ruft die Systemprozedur "sa_index_density" auf, um Indizes auf der Customer-Tabelle zu überprüfen.

CALL sa_index_density( 'Customers' );
TableName TableId IndexName IndexID IndexType LeafPages Density Skew
Customers 686 CustKey 0 PKEY 1 0.645992 1.002772
Customers 686 IX_cust_name 1 NUI 1 0.789795 1.432239

SQL Anywhere erstellt automatisch Indizes auf Primärschlüssel. Beachten Sie, dass diese Indizes eine IndexID von 0 in den Ergebnissen der Systemprozedur "sa_index_density" haben.

Wenn die Anzahl der Blattseiten niedrig ist, spielen die Dichte- und Schiefewerte keine Rolle. Dichte- und Schiefewerte werden nur dann wichtig, wenn die Anzahl der Blattseiten hoch ist. Wenn die Anzahl der Blattseiten hoch ist, kann ein niedriger Dichtewert auf Fragmentierung hinweisen, ein hoher Schiefewert zeigt, dass die Indizes nicht ausgewogen sind. Beide Phänomene können an einer Verschlechterung der Performance beteiligt sein. Mit einer REORGANIZE TABLE-Anweisung können beide Probleme beseitigt werden. Weitere Hinweise finden Sie unter REORGANIZE TABLE-Anweisung.

Siehe auch