Beste Ansatz für die Neuindizierung
Ich versuche, die Verringerung der Fragmentierung in allen Indizes für eine Datenbank auf einem SQL Server 2005.
Derzeit bin ich versuchen, verwenden Sie ALTER INDEX in Verbindung mit sp_MSforeachtable, anwenden, um alle Indizes für alle Tabellen:
sp_MSforeachtable "ALTER INDEX ALL ON ? REBUILD;"
Aber aus irgendeinem Grund dies nicht immer zu funktionieren scheint?
Wenn ich versuche, es für einen einzelnen index oder alle Indizes für eine einzelne Tabelle, dann die Fragmentierung ist aufgeräumt, es scheint nur zu sein, wenn ich es auf die ganze Datenbank, bekomme ich Probleme.
Vorher, ich haben könnte, verwendet DBCC DBREINDEX aber BOL Staaten wird es entfernt werden, in der nächsten version von SQL Server, so dass ich nicht wollen, es zu benutzen.
Kann mir jemand irgendwelche Ratschläge über den besten Weg zur Bekämpfung Reinigung aller Indizes in einer Datenbank?
Dank
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wenn Sie möchten, um vollständig zu automatisieren Ihre SQL Server-Index Wartung dann habe ich ernsthaft empfehlen, dass Sie überprüfen Michelle Ufford die gespeicherte Prozedur für dieses.
Index-Defrag-Skript V4.1
Ist es, was ich für das beste halten-index maintenance-Skript, das ich je gelesen habe.
Eines der besten features über dieses script können Sie anpassen der Schwellenwerte, die Sie verwenden, um zu bestimmen, ob oder ob nicht, NEUERSTELLEN oder NEUORGANISIEREN eines index Verteilung.
Es bietet auch die option zur Begrenzung der Anzahl der CPU-Kerne werden genutzt um das Verfahren. Eine ausgezeichnete option, wenn Sie beabsichtigen, führen Sie das Skript auf einer hektischen live-Produktion-Datenbank.
Warnung: Wie bei allen internet-code, werden Sie sicher, testen Sie es gründlich vor der Anwendung in einer Produktionsumgebung. Sie werden auch wahrscheinlich wollen, integrieren Sie eigene Anpassungen und Funktionen zu.
Überprüfen Sie heraus die Artikel und zugehörige Beispiel-Skript, um diese Aufgabe zu bewältigen, auf SQL Narr (Michelle Ufford auf der website):
http://sqlfool.com/2009/06/index-defrag-script-v30/
Dies ist eine ziemlich gute Lösung um dies zu umgehen und ein für alle mal!
Den best-practice-Empfehlung ist neu organisieren der index wenn Sie 5-30% der Fragmentierung, und nur neu erstellen, wenn es mehr als 30% Fragmentierung. Sie können ganz einfach nutzen diese Schwellenwerte oder geben Sie Ihre eigene mit diesem Skript.
Marc
Oder Sie können mithilfe von Microsoft index Wiederaufbau-Skript finden Sie hier http://msdn.microsoft.com/en-us/library/ms188917.aspx
Ich benutze dieses Skript, zusammen mit SQL Server-Agent um die Aufgabe zu automatisieren. Hoffe, das hilft.
Die sicherste und die meisten tragbaren Weg ist, fallen die Indizes und, um Sie wieder hinzuzufügen.