Tipps zur Optimierung von SQL-Server-Indizes

Datenseiten

Bei der Erstellung eines Index legt der SQL-Server Datenseiten an. Diese dienen als Zeiger zum Auffinden der gesuchten Informationen. Sobald der Index erstellt ist, wird ein Füllfaktor definiert. Dieser legt fest, welcher prozentuale Anteil der Datenseiten für die Indexerstellung verwendet wird. Der freie Speicherplatz wird mit der Zeit durch Änderungen aufgebraucht. Nachteil dieser Aufteilung ist der Geschwindigkeitsverlust beim Indizieren und somit auch bei entsprechenden Abfragen – die Daten werden immer stärker fragmentiert. Der Füllfaktor wird zu Beginn mit der Erstellung des Index festgelegt und wird nicht dynamisch angepasst.

Um den Füllfaktor in den Datenseiten zu aktualisieren, kann man die Indizes neu erstellen und den Faktor zurücksetzen. Dies hat allerdings negative Auswirkungen auf gleichzeitige Datenbankaktivitäten, deshalb sollte man z.B. bei Produktionssystemen Vorsicht walten lassen. Mit den Befehlen DBCC INDEXDEFRAG und DBCC DBREINDEX kann man zusammengefasste und einzelne Indizes defragmentieren. INDEXDEFRAG kann im laufenden Betrieb durchgeführt werden, die Datenbank wird nicht blockiert. DBREINDEX hingegen erstellt einen neuen Index. In den meisten Fällen kann mit einer Index-Neuerstellung eine höhere Defragmentierung erreicht werden, dies geschieht allerdings auf Kosten der Datenverfügbarkeit. INDEXDEFRAG kann bei großen fragmentierten Indizes mehr Zeit in Anspruch nehmen, da es mit kleinen Blöcken arbeitet.

Der Füllfaktor

Nachdem man eine dieser beiden Aktionen durchgeführt hat, ist die Datenbank in der Lage auf effizientere Weise indexierte Daten auszugeben. Die Feineinstellung des Füllfaktors ist zwar nicht Thema dieses Artikels, sollte aber mit Rücksicht auf den Einsatzzweck der Tabelle vorgenommen werden.

Der SQL-Server wählt die in einer Abfrage verwendeten Indizes dynamisch aus. Für diese Auswahl kommen Statistiken über die Verwendung von Schlüsseln in jedem Index zum Einsatz. Somit wird festgelegt, welche Indizes für die Abfrage verwendet werden. Man muss berücksichtigen, dass diese Statistiken bei normaler Datenbankaktivität nicht immer aktuell sind (z.B. aufgrund parallelem Hinzufügen, Löschen oder Aktualisieren der Daten). Um den aktuellen Status der Statistiken herauszufinden, kann man DBCC SHOWCONTIG verwenden. Sollten die Statistiken nicht mehr aktuell sein, sollte man ein UPDATE STATISTICS bei der entsprechenden Tabelle verwenden, so kann der SQL-Server seine Informationen über die Indizes aktualisieren.

Planen hilft

Mit dem SQL-Server bekommt man auch ein Tool, das den Administrationsaufwand einer Datenbank gering halten soll und gewisse Routinen vereinfacht und automatisiert. Dieses Programm nennt sich Database Maintenance Plan Wizard (DMPW). Mit seiner Hilfe kann man die Statistiken über Indizes als wiederkehrende Aufgabe automatisch aktualisieren, somit entfällt der Aufwand eines manuellen Updates. Eine weitere Variante stellt die Reorganisation von Datensätzen dar, wobei die Indizes zuerst verworfen und dann mit einem vorher spezifizierten Füllfaktor neu erstellt werden.

Page: 1 2

ZDNet.de Redaktion

Recent Posts

MadMxShell: Hacker verbreiten neue Backdoor per Malvertising

Die Anzeigen richten sich an IT-Teams und Administratoren. Ziel ist der Zugriff auf IT-Systeme.

2 Tagen ago

April-Patches für Windows legen VPN-Verbindungen lahm

Betroffen sind Windows 10 und Windows 11. Laut Microsoft treten unter Umständen VPN-Verbindungsfehler auf. Eine…

2 Tagen ago

AMD steigert Umsatz und Gewinn im ersten Quartal

Server-CPUs und Server-GPUs legen deutlich zu. Das Gaming-Segment schwächelt indes.

2 Tagen ago

Google stopft schwerwiegende Sicherheitslöcher in Chrome 124

Zwei Use-after-free-Bugs stecken in Picture In Picture und der WebGPU-Implementierung Dawn. Betroffen sind Chrome für…

4 Tagen ago

Studie: 91 Prozent der Ransomware-Opfer zahlen Lösegeld

Die durchschnittliche Lösegeldzahlung liegt bei 2,5 Millionen Dollar. Acht Prozent der Befragten zählten 2023 mehr…

4 Tagen ago

DMA: EU stuft auch Apples iPadOS als Gatekeeper ein

Eine neue Analyse der EU-Kommission sieht vor allem eine hohe Verbreitung von iPadOS bei Business-Nutzern.…

4 Tagen ago