Überblick über die Indexfragmentierung
Was ist Indexfragmentierung und warum sollte ich mich darauf konzentrieren: Fragmentierung entsteht, wenn die logische Reihenfolge im Index (basierend auf dem Schlüsselwert im Index) nicht mit der physischen Reihenfolge der Indexseiten in den Indexseiten des Index der Seiten übereinstimmt, die der Index enthält. Wann immer eine Einfügung, Aktualisierung oder Löschoperation auf den zugrundeliegenden Daten durchgeführt wird, ändert die Datenbank-Engine den Index automatisch. Zum Beispiel kann das Hinzufügen von Zeilen zu einer Tabelle dazu führen, dass geteilte Zeilen bestehende Seiten im Index speichern und Platz für das Einfügen neuer Schlüssel schaffen. Im Laufe der Zeit können diese Änderungen dazu führen, dass Informationen im Index in der Datenbank verstreut werden (die Fragmente enthalten). Fragmentierung tritt auf, wenn die logische Reihenfolge (basierend auf Schlüsselwert) in den Seiten, die der Index enthält, nicht mit der physischen Reihenfolge in der Datendatei übereinstimmt. Eine große Anzahl fragmentierter Indizes kann die Abfrageleistung verlangsamen, da zusätzliche I/O erforderlich ist, um die Daten zu finden, auf die der Index zeigt. Mehr I/O kann dazu führen, dass die Anwendung langsam reagiert, besonders wenn Scan-Operationen erforderlich sind.
Überprüfen Sie die Fragmentierung des Datenbankindexes
Befehl:
Es gibt zwei Möglichkeiten zur Defragmentierung: Reorganisation und Neuerstellung von Indexen; das Wiederaufbau von Indizes bezieht sich auf das Löschen alter Indizes und das Wiederaufbauen neuer Indizes in einer Transaktion, wodurch der Festplattenspeicher des ursprünglichen Index zurückgewonnen und neuer Speicherplatz zur Erstellung einer Indexstruktur zugewiesen wird. Die Reorganisation von Indizes bezieht sich darauf, keinen neuen Speicherplatz zuzuweisen, die Blattknoten der Indexstruktur auf Basis des ursprünglichen Speichers neu zu organisieren, sodass die logische und physikalische Reihenfolge der Datenseiten konsistent sind, und den überschüssigen Speicherplatz im Index freizusetzen.
Verwenden Sie die Funktion sys.dm_db_index_physical_stats, um den Grad der Fragmentierung, das Feld avg_fragmentation_in_percent den Prozentsatz der zurückgegebenen logischen Fragmente zu erkennen; im Allgemeinen empfiehlt Microsoft eine Schwelle von 30 %:
avg_fragmentation_in_percent >5 % und <=30 %: ALTER-INDEX REORGANISIEREN; avg_fragmentation_in_percent >30 %: ALTER INDEX REBUILD;
avg_fragmentation_in_percent: Indexfragmentierungsprozentsatz, wenn die Fragmentierung weniger als 10 % ~20 % beträgt, ist die Fragmentierung wahrscheinlich kein Problem,Wenn die Indexfragmentierung bei 20 %~40 % liegt, kann die Fragmentierung problematisch sein, aber die Indexauflösung kann durch Indexreorganisation eliminiert werden, und großflächige Fragmentierung (wenn die Fragmentierung größer als 40 %) ist, kann eine Rekonstruktion des Index erfordern.
Abfrage der Fragmentierungsinformationen für alle Indizes einer gegebenen Tabelle
Tabellen-Reindexierung
Stellen Sie den Index aller Tabellen in der gesamten Datenbank neu auf
Betriebsmittel:Der Hyperlink-Login ist sichtbar.
|