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.
Kommentieren Sie diese Seite in DocCommentXchange. Senden Sie uns Feedback über diese Seite via E-Mail. |
Copyright © 2009, iAnywhere Solutions, Inc. - SQL Anywhere 11.0.1 |