Eine hohe Indexfragmentierung der SQL Server Datenbankinstanz kann zu Leistungseinbußen bei SQL Abfragen führen.

Gilt für: Microsoft SQL Server 2005 Standard EditionMicrosoft SQL Server 2005 Enterprise EditionSQL Server 2008 Enterprise

Zusammenfassung


SQL-Abfrageperformance möglicherweise verringern die Indizes in der Microsoft SQL Server-Datenbankinstanz stark fragmentiert sind. Die Indexwartung Systemfunktion können erkennen die Indexfragmentierung für die folgenden Fälle:
  • Einen bestimmten index
  • Alle Indizes für eine Tabelle
  • Alle Indizes für eine indizierte Sicht
  • Alle Indizes in einer Datenbank
  • Alle Indizes in allen Datenbanken
Führen Sie die Fragmentierung zu ermitteln, die mehr als 30 Prozent, SQL Query Skript:

SELECT OBJECT_NAME(i.OBJECT_ID) AS TableName, OBJECT_NAME(i.OBJECT_ID) AS TableName, i.name AS IndexName,i.name AS IndexName, indexstats.avg_fragmentation_in_percent FROM sys.dm_db_index_physical_stats(DB_ID(), NULL, NULL, NULL, 'DETAILED') indexstats INNER JOIN sys.indexes i ON i.OBJECT_ID = indexstats.OBJECT_ID WHERE indexstats.avg_fragmentation_in_percent > 30 AND i.index_id = indexstats.index_id
Ermitteln Sie die beste Methode zur Behebung der Fragmentierung finden Sie die folgenden Richtlinien:
  • Verwenden der ALTER INDEX neu erstellen mit (ONLINE = ON) * Befehl für die Objekte, deren durchschnittliche Fragmentierung in Prozent mehr als 30 Prozent.
  • Verwenden Sie den Befehl ALTER INDEX REORGANIZE für die Objekte, deren durchschnittliche Fragmentierung in Prozent zwischen 5 und 30 Prozent.

Avg_fragmentation_in_percent WertBerichtigung
> 5 % und < = 30 %ALTER INDEX NEU ORGANISIEREN
> 30%ALTER INDEX NEU ERSTELLEN MIT (ONLINE = ON) *
Notizen:
  • Diese Werte sind eine grobe Richtlinie für die Bestimmung des Punkts mit dem ALTER INDEX REORGANIZE Wechsel zwischen und ALTER INDEX neu erstellenmüssen. Die tatsächlichen Werte variiert von Fall zu Fall. Sie müssen experimentieren, um optimale Schwellenwert für Ihre Umgebung ermitteln.
  • Sehr geringer Fragmentierung (weniger als 5 %) sollten durch diese Befehle nicht behandelt werden. Deswegen profitieren entfernt eine kleine Menge der Fragmentierung normalerweise erheblich die Kosten neu organisieren oder Neuerstellen von Indizes aufgewogen.

Weitere Informationen


Weitere Informationen und den Index neu zu erstellen gehen Sie auf der folgenden Microsoft-Website:
Die folgende Tabelle enthält weitere Informationen zu den Produkten und Tools, die für diese Bedingung auf die Instanz von SQL Server und der Versionen SQL Server die Regel ausgewertet wird automatisch überprüft.
Regel-SoftwareRegel-TitelBeschreibungProduktversionen, die Regel ausgewertet wird
System Center AdvisorHohe Fragmentierungen SQL Server können Leistung heruntergestuft.System Center Advisor überprüft die logische Fragmentierung mit Avg_fragmentation_in_percent Wert in Indexwartung für jede SQL Server-Instanz Datenbankindex. Die durchschnittliche Fragmentierung für den Index oder den Heap Prozent übersteigt, wird diese Warnung generiert. Führen Sie die Schritte in diesem Artikel die Probleme behoben, die auf die hohen Fragmentierungen beziehen.SQL Server 2008

SQL Server 2008 R2

SQL Server 2012