Die Wartung eines leistungsstarken SQL Servers ist nicht nur für den Betrieb Ihres Unternehmens, sondern auch für Ihre Kunden von entscheidender Bedeutung. Wenn Ihre Server nur langsam oder gar nicht reagieren, verlieren Sie Geschäft. Hier sind drei wichtige Bereiche, die Sie genau überwachen sollten, um sicherzustellen, dass Ihre SQL Server-Leistung optimal ist, und Möglichkeiten zur Leistungsverbesserung, wenn Ihre Metriken zeigen, dass Sie ein Problem haben.
Indizes
Wenn Ihre Indizes gut funktionieren, tragen sie zu einem schnellen und reibungslosen System bei. Wenn Ihre Indizes jedoch unter einem dieser häufigen Probleme leiden, stellen Sie möglicherweise fest, dass die Leistung Ihres SQL Servers negativ beeinflusst wird.
Zu überwachende Metrik:Füllfaktor
Der Füllfaktor ist eine Einstellung in SQL Server, die Indizes anweist, jede Seite mit X Prozent zu füllen. Es scheint intuitiv, dass Sie jede Seite zu 100 Prozent füllen möchten, aber in Wirklichkeit kann das Überfüllen von Seiten zu Seitenteilungen führen. Wenn ein Administrator einer ganzen Seite eine zusätzliche Zeile hinzufügt, verschiebt die neue Zeile etwa die Hälfte der vorhandenen Zeilen auf eine neue Seite, und die neue Zeile wird unten auf der ersten Seite hinzugefügt.
Seitenteilungen können aufgrund der erhöhten Anzahl von E/A-Vorgängen und der potenziellen Fragmentierung zu Leistungsproblemen führen. Zu viel Platz auf einer Seite kann jedoch auch die Leistung beeinträchtigen, da Ressourcen unnötig verbraucht werden.
Um die besten Leistungsergebnisse aus Ihren Füllfaktoreinstellungen zu erhalten, legen Sie keinen systemweiten Wert fest. Sehen Sie sich Ihre Indizes einzeln an und stellen Sie den Füllfaktor für jeden auf ein angemessenes Niveau ein. Beispielsweise benötigen häufig fragmentierte Indizes einen anderen Füllfaktorwert als Indizes, die kaum verwendet werden.
Zu überwachende Metrik:Fragmentierung
Indexfragmentierung tritt auf, wenn Benutzer Datensätze hinzufügen und löschen. Das Verschieben von Dingen ist ein normaler Bestandteil des täglichen Betriebs einer Datenbank, aber im Laufe der Zeit beeinträchtigt die Fragmentierung die Leistung. Fragmentierung kann einige Probleme verursachen:
- Zu viel Leerraum auf zu vielen Seiten verlangsamt Scans und verbraucht unnötig Speicher
- Neue Seiten werden außerhalb der Reihenfolge hinzugefügt, sodass der Server länger braucht, um Daten zu finden
Wenn die Fragmentierung beginnt, die Leistung zu beeinträchtigen, müssen Sie Rebuild oder Reorganize ausführen, um die fragmentierten Indizes zu bereinigen. Durch Ausführen von Rebuild wird ein neuer Index erstellt und das zusätzliche Leerzeichen entfernt. Reorganisieren ordnet die Blattseiten, damit der Server die Daten leichter finden kann.
Puffer-Cache
Wenn SQL Server Seiten im Puffercache lesen kann, ist Ihre Antwortzeit schneller. Die Leistung leidet, wenn der Server auf die Festplatte gehen muss, um eine Seite zu finden, weil er eine Reihe von Schritten durchlaufen muss, bevor er die Seite im Puffer speichert und sie dann liest. Es gibt ein paar Metriken, die Sie nachverfolgen können, die dazu beitragen, dass der Puffer-Cache mit Spitzenleistung läuft.
Zu überwachende Metrik:Lebenserwartung der Seite
Page Life Expectancy (PLE) gibt an, wie lange eine Seite ohne Aufruf im Puffercache verbleibt, bevor sie an die Festplatte zurückgesendet wird. Durch Erhöhen von PLE wird die Leistung verbessert, es wird jedoch auch Speicher verwendet, der möglicherweise für andere Funktionen benötigt wird. Wenn Sie PLE anpassen möchten, müssen Sie herausfinden, wie viel Speicher Sie verwenden können, ohne die Leistung an anderer Stelle zu beeinträchtigen.
Zu überwachende Metrik:Puffer-Cache-Trefferquote
Die Puffer-Cache-Trefferquote ist der Prozentsatz der Seiten, die sich im Pufferpool befinden, im Vergleich zu allen Seitenanforderungen. Die Puffercache-Trefferquote sollte für eine optimale Leistung über 90 liegen (d. h. SQL Server muss nicht von der Festplatte lesen). Seien Sie vorsichtig, wenn Sie die Trefferquotendaten Ihres Puffercaches analysieren. Eine kleine Verringerung des Verhältnisses weist möglicherweise nicht auf ein echtes Problem hin. Analysieren Sie die Daten in Verbindung mit PLE, um festzustellen, ob tatsächlich ein Leistungsproblem vorliegt.
Suchanfragenoptimierung
Langsame und leistungsschwache Abfragen sind eines der häufigsten Leistungsprobleme von SQL Server. Es gibt viele mögliche Gründe, warum Ihre Abfragen nicht gut laufen, daher kann es schwierig sein, eine genaue Ursache zu ermitteln. Aber es gibt ein paar Dinge, die Sie früh in Ihrer Untersuchung ausprobieren können, um die Abfrageleistung mit minimalem Aufwand zu verbessern.
Zu überwachende Metrik:Index-Scan
Die Überprüfung des Zustands Ihres SQL Servers sollte ein regelmäßiger Bestandteil Ihrer DBA-Aufgaben sein. Wenn Abfragen langsam ausgeführt werden, verbringen Sie etwas mehr Zeit mit dem Abfrageoptimierer. Eine wichtige Sache, die Sie überprüfen sollten, ist, ob der SQL Server-Indexscan irgendwelche Probleme hat, die Sie angehen müssen.
Ein weiterer potenzieller Leistungskiller ist der Index-Scan, der häufiger als nötig ausgeführt wird. Die Indexsuche dauert viel länger als die Indexsuche, da die Abfrage jede Zeile nach nützlichen Daten durchsuchen muss. Richten Sie Ihren Abfrageoptimierer so ein, dass er häufiger nach Indizes sucht als sie scannt.
Das Umschreiben einer problematischen Abfrage ist eine weitere Möglichkeit, die Leistung zu steigern. Manchmal wird durch das Vereinfachen von Abfragen der Teil entfernt, der dazu führt, dass die Abfrage ins Stocken gerät. Sie können auch versuchen, Indizes hinzuzufügen, um Abfragen zu beschleunigen, aber das funktioniert in einigen Fällen besser als in anderen.
Das Hinzufügen von Indizes ist eine gute Lösung für Felder, die beim Suchen, Gruppieren oder Sortieren verwendet werden. häufig aufgerufene Felder; und Felder mit eindeutigen Werten. Es ist im Allgemeinen nicht effektiv, Indizes für Felder mit doppelten Werten wie Ja/Nein oder für kleine Tabellen hinzuzufügen.
Die Leistungsüberwachung von SQL Server ist entscheidend für die Wartung leistungsstarker Datenbanken. Die Aufrechterhaltung der Höchstgeschwindigkeit Ihres SQL Servers kann nur durch sorgfältige Beachtung der Leistungskennzahlen erreicht werden. Fügen Sie die oben besprochenen Metriken zu Ihrer Wartungs-Checkliste hinzu, um Probleme mit der Leistung von SQL Server frühzeitig zu erkennen und zu beheben.