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

SQL Anywhere 12.0.1 (Deutsch) » SQL Anywhere Server - SQL-Benutzerhandbuch » Performanceverbesserungen, Diagnosen und Monitoring » Tipps zum Verbessern der Performance » Fragmentierungsbezogene Performance-Tipps

 

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.

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 718 CustomersKey 0 PKEY 1 0.127686 1.000000
Customers 718 IX_customer_name 1 NUI 1 0.789795 1.000000

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.

Sie können das Ausmaß der Fragmentierung von Indizes, die Basistabellen zugeordnet sind, auch mithilfe der Registerkarte Fragmentierung im SQL Anywhere-Plug-In prüfen.

 Siehe auch