Indexwartung · Teil 2 von 3

Aufgeräumt, aber ohne Platz

Warum REORGANIZE in unserem Insertversuch kaum Split-Logrecords spart – und ein REBUILD mit Reserve deutlich mehr bewirkt. Gemessen auf SQL Server 2022 und 2025.

8. Oktober 2026 · ca. 11 Minuten

Gemessen SQL Server 2022 · 2025Wartungsvarianten 6, je dreimalMitraten 10 Fragen ↓

Der Befund in 30 Sekunden

  1. Nach REORGANIZE war der Index nur noch zu 0,28 % fragmentiert. Die nächsten 100.000 Inserts erzeugten trotzdem 14.870 Split-Logrecords, nach REBUILD mit Fillfactor 81 nur 2.632.
  2. REORGANIZE schafft keine neue Reserve auf vollen Seiten. Danach hatten 9,21 % der erfassten Blattseiten keinen Platz mehr für eine weitere Zeile, nach dem REBUILD keine.
  3. Die Kosten hängen an den Bedingungen: In unserem Offline-Vergleich schrieb REORGANIZE unter SIMPLE rund 370-mal so viel Log wie der REBUILD, unter FULL rund 2,4-mal so viel.
  4. Ein niedriger Fragmentierungswert nach dem Job sagt deshalb wenig über die nächste Insertlast. Gemessen wird am Ziel und an der folgenden Last.

Ein grüner Haken, und die Splits gehen weiter

Zwei Indizes können nach der Wartung nahezu fragmentierungsfrei sein und sich bei den nächsten Inserts trotzdem unterschiedlich verhalten. Wir vergleichen sechs Varianten aus demselben Ausgangszustand. Entscheidend ist dabei, ob auf den Seiten Platz für die folgenden Zeilen bleibt und welche Kosten die Wartung verursacht.

Das ist Teil 2 einer Reihe. Teil 1 erklärt Seiten, Splits und Reserve mit Bildern statt Messwerten; wer dort Bild 8 kennt, sieht hier dasselbe in Zahlen. Teil 3 fragt, was ein Index tut, wenn niemand ihn wartet.

Der Aufbau

Eine Tabelle mit einem GUID als Clustering-Key und 200 Byte Nutzdaten. Die Schlüssel stammen aus einer reproduzierbaren, breit verteilten Hashfolge: Neue Zeilen treffen also zufällig verteilte Stellen im bestehenden Schlüsselbereich. Wir bauen eine Million Zeilen mit Fillfactor 81 auf und fügen dann 100.000 Zeilen einzeln ein. Danach ist der Index zu 16,69 % fragmentiert. Diesen Zustand sichern wir.

Jede Wartungsvariante beginnt mit genau diesem Backup:

Wartungsvarianten des eingefrorenen Vergleichs
VarianteWas passiert
Keine Wartungnichts, Kontrollgruppe
Nur StatistikenUPDATE STATISTICS … WITH FULLSCAN
REORGANIZEALTER INDEX … REORGANIZE
REBUILD FF81offline und online
REBUILD FF100offline, ohne Reserve

Danach folgen weitere 100.000 Einzelinserts, für jede Variante dieselben Schlüssel in derselben Reihenfolge. Jeder Vergleich läuft dreimal in wechselnder Reihenfolge, auf SQL Server 2022 und 2025 in eigenen Containern. Gemessen ist ein synthetischer Einzelindex unter serieller Last, keine produktive Benutzerlatenz.

Was wir zählen

Was REORGANIZE und REBUILD mit der Reserve machen

Fillfactor 81 heißt: Beim Aufbau bleiben auf den Blattseiten rund 19 % frei. Weil nur ganze Zeilen auf eine Seite passen, liegt die gemessene Dichte nach dem Aufbau bei 83,4 %, nicht exakt bei 81 %. Diese Reserve nimmt später Zeilen auf, die mitten in den Schlüsselbereich der Seite fallen. Ist sie aufgebraucht, muss SQL Server die Seite teilen.

Nach 100.000 zufällig verteilten Inserts sieht der Index uneinheitlich aus. Manche Seiten wurden gerade geteilt und sind halb leer. Andere haben ihre Reserve aufgebraucht und sind voll bis an den Rand.

Schematisch

Schematischer Vergleich mit gleicher Gesamtreserve

Freie Fläche gleichmäßig verteiltneue Zeilepasst30 von 36 Plätzen belegt, 6 freiFreie Fläche ungleich verteiltneue ZeileSeite voll → Split30 von 36 Plätzen belegt, 6 frei Freie Fläche gleichmäßig verteiltneue Zeilepasst30 von 36 Plätzen belegt, 6 freiFreie Fläche ungleich verteiltneue ZeileSeite voll → Split30 von 36 Plätzen belegt, 6 frei
Schematisch, nicht maßstäblich, keine Messwerte: In beiden Fällen sind 30 von 36 Plätzen belegt. Ob eine neue Zeile passt, entscheidet die Seite, auf die sie fällt. Die gemessenen Zustände nach REORGANIZE und REBUILD unterscheiden sich zusätzlich in der Gesamtmenge der Reserve (Grafik 2).

REORGANIZE arbeitet auf den vorhandenen Blattseiten. Es bringt sie in die richtige Reihenfolge und schiebt Zeilen von wenig gefüllten Seiten zusammen, höchstens bis zum Fillfactor. Seiten, die schon voller sind, leert es nicht. Microsoft beschreibt genau diese Grenze in der Dokumentation zu sys.dm_db_index_physical_stats.

REBUILD baut den Index neu auf und füllt die Blattseiten dabei wieder bis zum Fillfactor.

Beide Operationen senken die Fragmentierung: REORGANIZE auf 0,28 %, der Offline-REBUILD auf 0 %. Nach dem Prozentwert sind beide ein Erfolg.

Die nächsten 100.000 Inserts

Grafik 1

Nach REORGANIZE mehr als fünfmal so viele Split-Logrecords wie nach REBUILD FF81

Median aus drei Läufen, SQL 2022 und 2025 identisch. Hervorgehoben: die beiden Hauptarme.

HauptvergleichKontrollarme010.00020.00030.000REORGANIZE14.870REBUILD FF81 offline2.632Keine Wartung15.066Nur Statistiken15.066REBUILD FF81 online2.538REBUILD FF10030.455Split-Logrecords (LOP_DELETE_SPLIT) bei den nächsten 100.000 Inserts HauptvergleichKontrollarme010.00020.00030.000REORGANIZE14.870REBUILD FF81 offline2.632Keine Wartung15.066Nur Statistiken15.066REBUILD FF81 online2.538REBUILD FF10030.455Split-Logrecords (LOP_DELETE_SPLIT)bei den nächsten 100.000 Inserts
Nach derselben Wartungsbaseline folgen je Variante dieselben 100.000 Inserts. Gezeigt ist der Median der gezählten LOP_DELETE_SPLIT-Records aus drei Läufen. Synthetischer GUID-Index auf SQL Server 2022/2025; keine Messung produktiver Benutzerlatenz. Quelle: Eigene Messung, LAB-12, SQL Server 2022/2025, 05.10.2026
Daten zur Grafik
Split-Logrecords und Fragmentierung nach den nächsten 100.000 Inserts je Variante
VarianteSplit-LogrecordsFragmentierung danach
REORGANIZE14.87058,2 %
REBUILD FF81 offline2.63212,8 %
Keine Wartung15.06669,8 %
Nur Statistiken15.06669,8 %
REBUILD FF81 online2.53812,8 %
REBUILD FF10030.45596,8 %

Median aus drei Läufen, SQL Server 2022; SQL Server 2025 liefert dieselben Mediane.

Hauptvergleich: Split-Logrecords und Fragmentierung nach den nächsten 100.000 Inserts
VarianteSplit-LogrecordsFragmentierung danach
REBUILD FF81 offline2.63212,8 %
REORGANIZE14.87058,2 %

Nach REORGANIZE entstehen bei denselben Inserts mehr als fünfmal so viele Split-Logrecords wie nach dem REBUILD mit Reserve, also gegenüber REORGANIZE rund 82 % weniger mit dem REBUILD. Beide Engines liefern dieselben Zahlen; die Schlüsselfolge ist auf beiden gleich.

Die Kontrollarme zeigen, woran das liegt:

Kontrollarme: Split-Logrecords nach den nächsten 100.000 Inserts
KontrollarmSplit-LogrecordsWas er zeigt
Keine Wartung15.066REORGANIZE liegt fast auf dem Niveau ohne Eingriff.
Nur Statistiken15.066Statistikpflege ändert an den Seiten nichts.
REBUILD FF81 online2.538Online oder offline macht für die Reserve kaum einen Unterschied.
REBUILD FF10030.455Frisch geordnet, aber ohne Reserve: doppelt so viele wie nach REORGANIZE.

Ein frischer, geordneter Index ist also nicht automatisch ein guter Ausgangspunkt für die nächsten Inserts in bestehende Bereiche. Und Statistikpflege kann einen Plan verbessern, Platz auf einer Seite schafft sie nicht. Umgekehrt aktualisiert ein REBUILD auch die Statistik des Index. Wer nach einem REBUILD schnellere Abfragen sieht, sollte prüfen, welcher der beiden Effekte gewirkt hat.

Weniger Split-Logrecords heißen nicht im selben Maß schnellere Inserts. Die Insertzeit sank im Lab nach dem REBUILD gegenüber REORGANIZE um 17 bis 26 %. Das ist ein Hinweis, keine Latenzmessung: Die Zählung selbst, Commits in Gruppen von 1.000 Zeilen und Hintergrund-I/O verzerren absolute Zeiten.

Der Durchschnitt allein erklärt es nicht

Nach REORGANIZE ist der Index im Mittel sogar etwas voller als nach dem REBUILD, 85,3 % gegenüber 83,4 % Seitendichte. Der Durchschnitt allein erklärt das folgende Insertverhalten deshalb nicht. Zusätzlich zählt, auf welchen Seiten der freie Platz liegt.

Grafik 2

Volle Seiten bleiben nach REORGANIZE voll

Füllgrad aller erfassten Blattseiten nach REORGANIZE und nach REBUILD FF81 (SQL 2022, erster Lauf). Markiert: Seiten mit weniger als 225 Byte frei.

Lesehilfe: Waagerecht: Wie voll ist eine Seite? Senkrecht: Anteil der Seiten mit diesem Füllgrad.

Übersicht, volle SkalaNach REORGANIZEim Mittel 85,3 % voll · ohne Platz: 9,21 %0 %50 %100 %0 %20 %40 %60 %80 %100 %Nach REBUILD FF81im Mittel 83,4 % voll · ohne Platz: 0 %0 %50 %100 %0 %20 %40 %60 %80 %100 %nahezu 100 % der Seiten(36.666 von 36.667, je 30 Zeilen)Detailansicht: nach REORGANIZE, eigene Achse 0–25 %0 %10 %20 %0 %20 %40 %60 %80 %100 %20,0 %etwa halb voll (frisch geteilt)Fillfactor 81Orange Fläche:weniger als 225Byte frei9,21 %der BlattseitenFüllgrad der Blattseite (belegte Fläche von 8.096 Byte)Anteil der Seiten Übersicht, volle SkalaNach REORGANIZEim Mittel 85,3 % vollohne Platz: 9,21 %0 %50 %100 %0 %25 %50 %75 %100 %Nach REBUILD FF81im Mittel 83,4 % vollohne Platz: 0 %0 %50 %100 %0 %25 %50 %75 %100 %nahezu 100 % der Seiten(36.666 von 36.667, je 30 Zeilen)Detailansicht: nach REORGANIZE,eigene Achse 0–25 %0 %10 %20 %0 %25 %50 %75 %100 %FF 81etwa halb voll(frisch geteilt)Füllgrad der Blattseite(belegte Fläche von 8.096 Byte)Orange Fläche: weniger als 225 Byte frei
Jeder Balken steht für eine Zeilenzahl je Seite (eine Zeile entspricht 2,8 Prozentpunkten), Einheit: Anteil der erfassten Blattseiten. Die Übersicht zeigt beide Zustände auf der vollen Skala bis 100 %, die Detailansicht nur REORGANIZE mit eigener Achse bis 25 %. Gestrichelt: der eingestellte Fillfactor 81. SQL Server 2022, erster Lauf, kein Median. 9,21 % der Seiten sind keine Splitwahrscheinlichkeit von 9,21 %. Quelle: Eigene Messung, LAB-12, SQL Server 2022/2025, 05.10.2026
Daten zur Grafik
Blattseiten je Zeilenzahl nach REORGANIZE und nach REBUILD FF81
Zeilen je SeiteFüllgradREORGANIZE SeitenAnteilREBUILD FF81 SeitenAnteil
1–16bis 44,5 %1210,34 %00 %
1747,2 %1.2983,62 %00 %
1850,0 %4681,31 %00 %
1952,8 %1.6054,48 %00 %
2055,6 %5121,43 %10,003 %
2158,4 %1820,51 %00 %
2261,1 %1010,28 %00 %
2363,9 %190,05 %00 %
2466,7 %840,23 %00 %
2569,5 %740,21 %00 %
2672,3 %610,17 %00 %
2775,0 %580,16 %00 %
2877,8 %650,18 %00 %
2980,6 %1.3923,89 %00 %
3083,4 %1.8885,27 %36.66699,997 %
3186,2 %5.03214,05 %00 %
3288,9 %7.16420,00 %00 %
3391,7 %7.08019,76 %00 %
3494,5 %5.31814,85 %00 %
3597,3 %3.3019,21 %00 %

Erfasste Blattseiten: 35.823 nach REORGANIZE, 36.667 nach REBUILD FF81. Füllgrad = (8.096 − freie Byte) / 8.096. Eine Seite fasst höchstens 35 Zeilen zu 225 Byte.

Eine neue Testzeile belegt in diesem Aufbau 223 Byte plus 2 Byte im Slot-Verzeichnis der Seite. Nach REORGANIZE haben 9,21 % der erfassten Blattseiten weniger als 225 Byte frei. Eine weitere Zeile auf einer dieser Seiten löst einen Split aus. Nach REBUILD FF81 trifft das auf keine erfasste Seite zu; nahezu alle Seiten liegen dort in derselben Füllklasse.

Gesamtmenge und Verteilung der Reserve unterscheiden sich in diesem Versuch beide. 9,21 % der Seiten sind dabei keine Splitwahrscheinlichkeit von 9,21 %: Wie oft Inserts diese Seiten treffen, hängt von der Schlüsselverteilung ab. Die Verteilung zeigt aber, warum ein guter Durchschnitt die nächste Insertlast nicht vorhersagt.

Was es kostet

Wartung kostet Log, Zeit und Verfügbarkeit. In unserem eingefrorenen Vergleich, offline, gemessen als erzeugte Logrecord-Bytes:

Grafik 3

Das Recovery-Modell verändert das Kostenverhältnis

Erzeugtes Log und Dauer je Eingriff, SIMPLE und FULL, REBUILD FF81 offline. SQL 2022, Median aus drei Läufen.

SIMPLEoffline, erzeugte Logrecord-BytesREORGANIZE schreibt ≈ 370× so viel LogErzeugtes Log (MiB)0300600REORGANIZE597 MiBREBUILD FF811,6 MiBDauer je Eingriff (s)03060REORGANIZE55 sREBUILD FF811,2 sFULLoffline, erzeugte Logrecord-BytesREORGANIZE schreibt ≈ 2,4× so viel LogErzeugtes Log (MiB)0300600REORGANIZE597 MiBREBUILD FF81245 MiBDauer je Eingriff (s)03060REORGANIZE55 sREBUILD FF812,8 s SIMPLEoffline, erzeugte Logrecord-BytesREORGANIZE schreibt ≈ 370× so viel LogErzeugtes Log (MiB)0300600REORGANIZE597 MiBREBUILD FF811,6 MiBDauer je Eingriff (s)03060REORGANIZE55 sREBUILD FF811,2 sFULLoffline, erzeugte Logrecord-BytesREORGANIZE schreibt ≈ 2,4× so viel LogErzeugtes Log (MiB)0300600REORGANIZE597 MiBREBUILD FF81245 MiBDauer je Eingriff (s)03060REORGANIZE55 sREBUILD FF812,8 s
Gleiche Skalen in beiden Recovery-Modellen. Einheit: Summe der erzeugten Logrecord-Bytes in MiB und Dauer des Eingriffs selbst in Sekunden, nicht die Größe von Logdatei oder Logbackup und nicht die Zeit der folgenden Inserts. Unter SIMPLE ist der REBUILD-Balken kaum zu sehen: 1,6 MiB. Synthetischer Einzelindex, offline; andere Bedingungen, etwa ein Online-REBUILD, können das Verhältnis stark verändern. Quelle: Eigene Messung, LAB-12, SQL Server 2022/2025, 05.10.2026
Erzeugtes Log und Dauer je Eingriff nach Recovery-Modell, SQL Server 2022, offline
RecoveryREORGANIZEREBUILD FF81 offlineVerhältnis
SIMPLE597 MiB · 55 s1,6 MiB · 1,2 s~370×
FULL597 MiB · 55 s245 MiB · 2,8 s~2,4×

Unter SIMPLE wird der Offline-REBUILD minimal protokolliert, unter FULL nicht. Der Satz „REORGANIZE schreibt immer Größenordnungen mehr Log“ stimmt deshalb nicht allgemein. Gemessen haben wir die Summe der erzeugten Logrecords, nicht die Größe der Logdatei oder des Logbackups. Andere Betriebsbedingungen, etwa ein Online-REBUILD (im selben Vergleich 34 MiB), können das Verhältnis stark verändern.

Auch die Verfügbarkeit gehört zur Entscheidung. Ein Offline-REBUILD kann den Zugriff auf die Tabelle für die Dauer der Operation blockieren; auch ein Online-REBUILD hat kurze Sperrphasen (Microsoft: How online index operations work). REORGANIZE läuft online, belastet das System aber ebenfalls. Unter gleichzeitigen Schreibzugriffen haben wir das hier nicht vermessen.

Microsoft empfiehlt REORGANIZE grundsätzlich wegen des geringeren Ressourcenbedarfs und verlangt zugleich, Nutzen und Kosten an der tatsächlichen Arbeitslast zu prüfen (Index maintenance strategy). Unser Fall widerspricht dem nicht. Er zeigt ein Ziel, nämlich neue Reserve für Inserts in bestehende Bereiche, das REORGANIZE nicht erreicht.

Vertiefung: 60 Tage, drei Strategien

Ein eingefrorener Vergleich zeigt einen Moment. Wartung läuft aber immer wieder. Deshalb eine zweite Reihe: leerer Start, GUID plus 100 Byte Nutzdaten, Fillfactor 80, jeden simulierten Tag 10.000 zufällig verteilte Einzelinserts, danach die Prüfung der Wartungsregel. Unterhalb von 1.000 Blattseiten greift keine Regel ein. Wartung offline unter SIMPLE; je Strategie eine deterministische Reihe.

  • Keine Wartung
  • 5/30-%-Regel: ab 5 % Fragmentierung REORGANIZE, ab 30 % REBUILD. Diese Regel steht in vielen Wartungsjobs als Standard.
  • Früher REBUILD: ab 1 % Fragmentierung REBUILD mit Fillfactor 80. Diese Vergleichsvariante folgt Jeff Modens Ansatz für diesen Insertfall.
Grafik 4

In diesem Insertfall sammelt die 5/30-%-Regel mehr Split-Logrecords als keine Wartung

10.000 Inserts je simuliertem Tag, Fillfactor 80, deterministische Reihe, SQL 2022 (SQL 2025 identisch).

5/30-%-RegelKeine WartungFrüher REBUILDSplit-Logrecords, kumuliert05.00010.00015.00020.000010203040506022.3475/30-%-Regel13.631Keine Wartung4.199Früher REBUILDSimulierter Tag (je Tag 10.000 Einzelinserts, Fillfactor 80, Wartung offline unter SIMPLE)Eingriffe der 5/30-%-Regel: 9 × REBUILD (Strich), 37 × REORGANIZE (Kreis)Eingriffe beim frühen REBUILD: 20 × REBUILD (Strich) 5/30-%-RegelKeine WartungFrüher REBUILDSplit-Logrecords, kumuliert05.00010.00015.00020.000020406022.3475/30-%-Regel13.631Keine Wartung4.199Früher REBUILDSimulierter Tag(je Tag 10.000 Inserts, FF80,offline unter SIMPLE)5/30-%-Regel: 9 × REBUILD, 37 × REORGANIZEFrüher REBUILD: 20 × REBUILDStrich = REBUILD, Kreis = REORGANIZE
Kumulierte LOP_DELETE_SPLIT-Records über 60 simulierte Tage, leerer Start. Je Strategie eine deterministische Reihe ohne Streuungsangabe, keine unabhängigen Workloads; Wartung offline unter SIMPLE. Unter der Grafik die Tage, an denen die Regel eingegriffen hat. Die Reihe zeigt diesen Insertfall, keinen allgemeinen Wartungsstandard. Quelle: Eigene Messung, LAB-12, SQL Server 2022/2025, 05.10.2026
Daten zur Grafik
Kumulierte Split-Logrecords je Strategie
Kumuliert bis5/30-%-RegelKeine WartungFrüher REBUILD
Tag 103.1892.2861.691
Tag 205.7194.5402.785
Tag 308.7546.8173.274
Tag 4013.4039.0723.681
Tag 5017.86611.3523.951
Tag 6022.34713.6314.199
Drei Strategien über 60 simulierte Tage, SQL Server 2022
Strategie (SQL 2022)REBUILD / REORGANIZESplit-LogrecordsWartungslog
Früher REBUILD20 / 04.1994,3 MiB
Keine Wartung0 / 013.6310
5/30-%-Regel9 / 3722.3474.574 MiB

In diesem Insertfall liegt die 5/30-%-Regel nicht zwischen den beiden anderen, sondern deutlich darüber: Mit 46 Eingriffen erzeugt sie mehr Split-Logrecords als gar keine Wartung und über tausendmal so viel Wartungslog wie die REBUILD-Strategie. Der Grund ist derselbe wie im eingefrorenen Vergleich: Die vielen REORGANIZE-Läufe verdichten Seiten, ohne neue Reserve zu schaffen.

Die 1-%-Schwelle ist dabei nicht das Geheimnis. Mit Fillfactor 100 löst dieselbe Regel in einem 90-Tage-Lauf 86 REBUILDs aus, und der Index sammelt 422.881 Split-Logrecords. Ohne Reserve hilft auch häufiges Neuaufbauen nicht. Die 1-%-Strategie ist eine Vergleichsvariante für diesen Fall, kein neuer allgemeiner Standard.

Was wir daraus ableiten

Für den untersuchten Fall wiederholter Inserts in bestehende Schlüsselbereiche ist ein REBUILD mit Reserve ein wirksamer Prüfkandidat. REORGANIZE hat hier die logische Fragmentierung reduziert, die Reserve auf vollen Seiten jedoch nicht erneuert. Der beobachtete Unterschied entspricht der von Jeff Moden gezeigten Gegenprobe, jetzt auf zwei aktuellen Versionen.

Ob eine dieser Wirkungen den Eingriff rechtfertigt, hängt vom Ziel und der Last ab. Indizes mit aufsteigenden Schlüsseln, selten geänderte Tabellen oder überwiegend gelesene Indizes haben andere Bedürfnisse, und Reserve kostet Seiten, die Scans anfassen müssen. Eine bessere Dichte für Lesezugriffe kann ebenfalls ein legitimes Wartungsziel sein.

Unser Vorschlag für die Reihe:

Indexwartung braucht ein messbares Ziel. Entscheidend ist, ob ihre Wirkung auf die Arbeitslast die Kosten und die Beeinträchtigung des Betriebs rechtfertigt.

  1. 01

    Ziel benennen

    Sollen Scans weniger Seiten anfassen, Inserts in bestehende Bereiche seltener splitten oder Platz frei werden? Bei Planproblemen Schätzungen und Planwahl prüfen.

  2. 02

    Maßnahme passend wählen

    Fürs Lesen zählen Seitenzahl und Dichte, fürs Einfügen nutzbare Reserve auf den Zielseiten.

  3. 03

    Wirkung prüfen

    Dieselbe Last vorher und nachher, einschließlich der Wartungskosten, der Sperrwirkung und der Zeit bis zum nächsten Eingriff.

Ein Fragmentierungswert nach dem Job beantwortet keinen dieser drei Punkte.

Ausblick Teil 3: Was passiert ganz ohne Wartung? Wir haben zwei Indizes ohne jeden Eingriff auf über drei Millionen Zeilen wachsen lassen. Wo sich die Seitendichte stabilisiert und warum die Split-Logrecords trotzdem weiterlaufen, folgt in Teil 3.

Herkunft und weiterführende Arbeiten

Die Versuchsideen und Gegenproben dieser Reihe greifen insbesondere Jeff Modens Arbeiten zur Indexwartung auf. Er beschreibt die Grenze von REORGANIZE bei vollen Seiten mindestens seit 2020 auf SQLServerCentral. Sein Vortrag „Black Arts“ Index Maintenance #1 untersucht die Verteilung freier Fläche, unterschiedliche Fillfactors und wiederkehrende Wartungsstrategien in einer Jahressimulation; die frühe REBUILD-Strategie und die Kritik an der 5/30-%-Regel stammen von dort. Folien und Skripte stellt er für Lernzwecke frei zur Verfügung. Der Austausch mit ihm auf LinkedIn gab den Anstoß für unsere eigenen Versuche. Wir danken ihm für die Anregungen. Unsere Messwerte stammen aus dem PSG-Lab; ihre Bedingungen und Grenzen sind jeweils angegeben.

Grenzen der Messung
  • Synthetische Daten, ein Clustered Index ohne Nebenindizes, feste Zeilenbreite, keine Deletes, keine Kompression, keine LOBs, keine Partitionen.
  • Serielle Last, MAXDOP 1, keine gleichzeitigen Schreiber; Sperrwirkung von Online- und Offline-REBUILD nicht gemessen.
  • Linux-Container auf einer Lab-VM, Daten, Log und TempDB auf derselben SATA-SSD. SQL Server 2022 (16.0.4295.3) und 2025 (17.0.5005.3), Developer Edition.
  • Auto-Statistiken, Query Store und ADR im Versuch abgeschaltet.
  • Wartungsvergleich: drei Wiederholungen je Variante, Median. Die 60-Tage-Reihen sind je eine deterministische Trajektorie ohne Streuungsangabe; sie sind keine unabhängigen Workloads.
  • Die Seitenverteilung (Grafik 2) stammt aus dem ersten Lauf auf SQL 2022, nicht aus einem Median.
  • Logmengen: Summe der Logrecord-Längen nach einer LSN-Grenze, nicht Logdatei- oder Logbackupgröße.
  • Geprüft am 05.10.2026. Die Versuchsbedingungen sind dokumentiert; zu einem öffentlichen Reproduktionspaket informieren wir gesondert.
Quiz · 10 Fragen

Schafft Ihre Wartung Platz für die nächsten Inserts?

Jede Antwort wird sofort aufgelöst, mit Verweis auf die Stelle im Beitrag. Am Ende gibt es eine Einordnung und einen Link zum Teilen. Ohne Cookies.

Weiterlesen