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?