Index-Gesundheit

Der Bereich Performance → Index-Gesundheit und Fehlende Indizes hilft, Indizes zu finden, die bremsen – fragmentierte, ungenutzte, doppelte und fehlende.

Scans laufen im Hintergrund

Index-Prüfungen sind teuer, daher werden sie geplant im Hintergrund ausgeführt und die Ergebnisse gespeichert. Die Seite liest aus diesen gespeicherten Läufen, statt bei jedem Aufruf den SQL Server zu belasten. Drei Scan-Typen: Fragmented, Unused, Duplicate.

Admins können über Scan now einen Lauf sofort anstoßen. Läuft bereits einer für diese Kombination, ist der Button deaktiviert.

Bleibt „Scan in progress“ sehr lange stehen, wurde der Prozess vermutlich mitten im Scan beendet. Der Scheduler räumt solche verwaisten Läufe nach einem Timeout automatisch auf.

Fehlende Indizes & Impact-Analyse

Fehlende Indizes stammen aus den Vorschlägen von SQL Server. Über Analyze Impact öffnet sich pro Vorschlag eine Detailanalyse:

  • Storage Footprint – aktuelle Tabellengröße auf der Platte plus geschätzte Größe des neuen Index.
  • Existing Indexes on This Table – vorhandene Indizes samt Merge-Advisor: Er erkennt, ob ein Vorschlag durch einen bestehenden Index bereits abgedeckt ist (redundant), ob ein bestehender Index erweitert werden sollte (extend) oder ob ein neuer Index sinnvoll ist (create new) – inklusive fertigem ALTER/CREATE-SQL.

Wird die Tabelle nicht gefunden, wurde sie nach dem Erfassen des Vorschlags vermutlich umbenannt oder gelöscht; die Analyse sagt das dann klar.

Merge statt Duplikate

Der Merge-Advisor emittiert CREATE INDEX … WITH (DROP_EXISTING = ON), damit man Indizes zusammenführt, statt teure Überlappungen mit doppeltem Wartungsaufwand anzulegen.

Faustregel: Jeder Index beschleunigt Lesezugriffe, verteuert aber Schreibzugriffe. Prüfen Sie Vorschläge im Kontext von Lese-/Schreib-Verhältnis und tatsächlicher Nutzung, bevor Sie sie anlegen – am besten zuerst in einer Testumgebung.