Ich habe SQL Server 2008 und eine Reihe von Datenbanken. Ich habe festgestellt, dass einer der Indizes meiner Tabelle extrem fragmentiert ist (wie ich weiß: http://msdn.microsoft.com/en-us/library/ms189858.aspx )
Das avg_fragmentation_in_percent
sind satte 97% oder mehr und die Fragmentzahl liegt bei Tausenden. Sehr interessanterweise ist das avg_fragment_size_in_pages
nur etwas mehr als 1. Ich kann es defragmentieren, was hilft, aber ich möchte verhindern, dass dies überhaupt passiert.
Warum sind die Seiten pro Fragment so niedrig? Ich habe FILEGROWTH = 128MB
für die Datenbank als Ganzes, aber diese bestimmte Tabelle ist die aktivste. Gibt es eine Möglichkeit, SQL Server anzuweisen, dieser Tabelle oder diesem Index mehr Wachstum zuzuweisen, damit die Seiten pro Fragment höher sind?
Antworten:
In erster Linie sollten Sie die Auswirkungen der Fragmentierung bewerten . Viel zu oft wird Fragmentierung als die ultimative böse Ursache aller Serverprobleme ohne Berücksichtigung ihrer tatsächlichen Auswirkungen dargestellt. Die Fragmentierung wirkt sich auf verschiedene Aspekte aus:
Alle oben genannten sind schlecht, aber hier ist der eigentliche Deal: Sie können 97% Fragmentierung haben, ohne dass eines der oben genannten Symptome vorliegt . Eine hohe Fragmentierung kann in der Tat all diese Probleme verursachen, jedoch nur, wenn Ihre spezifische Arbeitslast tatsächlich so mit der Fragmentierung interagiert, dass diese Symptome auftreten.
Ich würde empfehlen, die Waits and Queues- Methode zu verwenden, um Ihre tatsächlichen Leistungsengpässe zu lokalisieren und sie entsprechend zu bewerten. Sie können sehr gut bestätigen, dass die Fragmentierung schwerwiegende Auswirkungen hat und dass Schema- und möglicherweise Anwendungsänderungen erforderlich sind, um das Problem zu beheben. Möglicherweise stellen Sie jedoch fest, dass das Problem an einer anderen Stelle liegt und die Lösung völlig anders ist.
Und zum Schluss: Vielleicht stellen Sie auch fest, dass 5.000 US-Dollar für mehr RAM und ein paar gute SSDs die Probleme, die Sie haben, vollständig lindern. Bevor Sie vor Entsetzen über ein solches Mittel mit den Schultern zucken (was, keine Grundursache wird angesprochen? Anathema!), Berücksichtigen Sie das Risiko und die Kosten, die mit einer Anwendungsänderung verbunden sind ...
quelle