Unser SQL Server befindet sich in einem SAN. Es enthält Dutzende von OLTP-Datenbanken, einige mit mehreren Tabellen, die mehr als 1 Million Datensätze enthalten.
Wir haben wöchentlich Ola Hallengrens Indexpflegeskripte ausgeführt, die jeweils mehrere Stunden lang ausgeführt werden. Basierend auf dem Fragmentierungsschwellenwert organisiert das Skript einen Index neu oder indiziert ihn neu. Wir haben festgestellt, dass während der Neuindizierung die Protokolldateien sehr groß werden, was zu einem übermäßigen Bandbreitenverbrauch während des Protokollversands führt.
Dann kommt ein Artikel von Brent Ozar, in dem er sagt, er solle sich keine Gedanken mehr über SQL-Indizes machen :
Ihre Festplatten werden mit anderen Servern gemeinsam genutzt, die gleichzeitig Laufwerksanforderungen stellen, sodass die Laufwerke immer überall herumspringen, um Daten abzurufen. Das Defragmentieren Ihrer Indizes ist nur eine bedeutungslose Arbeit.
Das googeln mit dieser Frage führt zu unterschiedlichen Meinungen, die meist von zu kurzen oder zu schwachen Argumenten gestützt werden. Unser vorläufiger Plan ist es, den Fragmentierungsschwellenwert in unserem Wartungsskript so anzupassen, dass es viel häufiger reorganisiert als neu indiziert wird.
Was ist das endgültige Urteil? Lohnt es sich, SQL-Indizes in einem SAN zu defragmentieren, um die Belastungen zu berücksichtigen, die mit der Ausführung wöchentlicher Wartungsaufträge verbunden sind?
Im Idealfall sollten Sie NUR die Indizes reorganisieren / neu indizieren, die beachtet werden müssen, da Sie sonst Ressourcen verschwenden und möglicherweise andere Probleme verursachen.
Sie müssen eine Leistungsbasislinie erstellen und bei jeder Änderung die Leistungsänderung mit der Basislinie vergleichen, um festzustellen, ob Ihre Änderung eine Implementierung wert ist.
quelle
Okay, die Frage bezieht sich auf Datenbankindizes, die ein Konstrukt einer Datei oder einer Gruppe von Dateien sind. Das Lesen der obigen Antworten würde eine Person glauben lassen, dass es sich um eine Fragmentierung auf Datenträgerebene handelt und nicht um die Indizes in einer Datei. Diese völlig getrennten Themen.
Der kurzsichtige Ansatz hier ist, dass sich die Leistung beim Abrufen von Daten innerhalb der OLTP-Datenbank verbessert, wenn Indizes defragmentiert oder neu erstellt werden. Die Antwort ist ja! Es ist jedoch wichtig zu beachten, dass die Festplattenfragmentierung ebenfalls ein Faktor ist.
Niedrigste "Kosten" insgesamt? Führen Sie Ihre Datenbankwartung durch. Zweitniedrigste Kosten: Trennen Sie die Datenbank, verschieben Sie sie an einen anderen Ort, formatieren Sie die Datenträger neu und befolgen Sie die bewährten Methoden für die Ausrichtung der Datenträgerpartitionen ( http://msdn.microsoft.com/en-us/library/dd758814.aspx) . Verwenden Sie zu guter Letzt einen erweiterten Defragmentierer eines Drittanbieters wie Diskkeeper.
Beachten Sie, dass dies NUR für Speicher vom Typ NTFS (z. B. Windows-Betriebssystem) empfohlen wird und keine Empfehlung für ein Produkt darstellt. Ich bin auch nicht mit Condusiv Technologies oder seinen Tochterunternehmen verbunden.
quelle