Probleme mit der Datenbankleistung sind keine Seltenheit. Glücklicherweise gibt es für die meisten Probleme normalerweise eine ziemlich intuitive Lösung. Das Wichtigste, was ein DBA tun kann, um Probleme schnell zu beheben und die Leistung von SQL Server zu verbessern, ist sicherzustellen, dass Ihre Strategie zur Leistungsüberwachung auf dem neuesten Stand und mit Ihren Anforderungen an die Datenbanküberwachung abgestimmt ist. Ist dies nicht der Fall, ist es an der Zeit, Maßnahmen zu ergreifen.
Der erste Schritt zur Verbesserung Ihrer Datenbanküberwachung besteht darin, Ihre aktuelle Situation zu bewerten. Sie werden nicht wissen, wo Ihre Überwachung fehlt oder ob die Überwachung eines Ihrer Leistungsprobleme verbessert, wenn Sie keine Basismessung Ihres Ausgangspunkts durchführen.
Um Ihre Leistungsbaseline festzulegen, müssen Sie den Zustand Ihrer SQL Server-Datenbanken bewerten, indem Sie sich einige Fragen stellen:
Sind Abfragen optimiert? Unterdurchschnittliche Abfragen sind ein sicherer Weg, um die Leistung zu verlangsamen. Es gibt viele Tricks, die Sie ausprobieren können, um Ihre Abfragen zu bereinigen, aber Ihre beste Option ist die Implementierung eines Abfrageoptimierers, der Ihre Abfragen analysiert und umschreibt, bis er einen schnelleren findet.
Sind die Indizes in gutem Zustand? Eine ordnungsgemäß durchgeführte Indizierung soll den Datenabruf beschleunigen. Es gibt jedoch einige häufige Probleme, die die Leistung beeinträchtigen können, darunter ineffiziente Füllfaktoreinstellungen und Seitenaufteilungen. Der beste Weg, diese Leistungsprobleme zu vermeiden, besteht darin, keinen systemweiten Füllfaktorwert festzulegen und die Anforderungen jedes Index einzeln zu prüfen.
Sind viele Daten fragmentiert? Fragmentierte Daten beeinträchtigen die Leistung, indem zu viel Leerraum auf einer Seite platziert wird oder Seiten hinzugefügt werden. Der Server muss die fragmentierten Daten scannen und suchen, was dazu führt, dass die Datenbank langsam läuft. Das Ausführen von Rebuild oder Reorganize kann die Fragmentierung bereinigen.
Fresst etwas CPU? Datenbanken werden langsamer, wenn die CPU durch mehrere Ressourcen belastet wird. Bewerten Sie die CPU-Auslastung und entscheiden Sie, ob das Problem darin besteht, dass Sie mehr CPU hinzufügen müssen oder dass ineffiziente Ressourcen mehr CPU verbrauchen, als sie sollten.
Sobald Sie eine Momentaufnahme der Startlinie haben, haben Sie eine bessere Vorstellung von den Arten von Überwachungsverbesserungen, auf die Sie sich konzentrieren müssen. Hier sind fünf Möglichkeiten, wie Sie Ihre SQL Server-Datenbanküberwachung verbessern können.
1. Bewerten Sie Ihre Überwachungsintervalle und löschen Sie Daten so oft wie möglich
Leistungsüberwachungstools bieten endlose Möglichkeiten, welche Metriken überwacht werden sollen, wann Daten abgerufen werden und wie lange die Daten aufbewahrt werden sollen. Wenn Sie mehrere Instanzen überwachen, ist die Menge an Daten, die Sie sammeln, potenziell atemberaubend (und teuer zu speichern).
Um Ihre Daten auf einem überschaubaren Niveau zu halten, sammeln Sie Daten nicht öfter als nötig und bewahren Sie Daten nur lange genug auf, um Trends zu erkennen. Sobald Sie etwas Interessantes aufgezeichnet haben, archivieren oder löschen Sie die Daten.
2. Prüfen Sie, ob Ihre Abfragen effizient funktionieren
Es gibt viele Orte, an denen sich Leistungsprobleme in SQL Server verstecken können. Da Datenbankanwendungen häufig SQL-Abfragen ausführen, ist die Bewertung des Status Ihrer Abfragen ein guter Ausgangspunkt, um mit der Beseitigung von Problemen zu beginnen.
Wenn Sie beispielsweise überwachen, wie sich Abfragen im Laufe der Zeit verhalten, können Sie diejenigen isolieren, die mehr Ressourcen als normal verbrauchen. Sobald Sie problematische Abfragen identifiziert haben, können Sie jede Abfrage ausführen, um die spezifische Ursache des Problems zu ermitteln und es zu beheben.
3. Überprüfen Sie Leistungszähler und -einstellungen
SQL Server Performance Monitor (Perfmon) ist ein wertvolles Tool, das DBAs hilft, Schwachstellen in ihren SQL Server-Datenbanken zu isolieren. Mit Perfmon können Sie Leistungsindikatoren für jeden Ihrer Server einrichten, um CPU-Engpässe, Festplattenleistung, Speicherprobleme und vieles mehr zu identifizieren.
Dieser Artikel von Brent Ozar erläutert die ersten Schritte mit Perfmon und beschreibt einige Best Practices.
4. Konfigurieren Sie Ihre Benachrichtigungen basierend auf dem Schweregrad
Obwohl viele Alarmkonfigurationen verfügbar sind, ist es am besten, bei der Konfiguration von Alarmen selektiv vorzugehen, damit Sie nicht der Alarmmüdigkeit erliegen. Eine gute Faustregel besteht darin, Warnungen für Probleme mit Schweregrad 17 oder höher und für Fehlermeldungen 823, 824 und 825 einzurichten – mit anderen Worten, die Probleme, die dazu führen können, dass Ihre Server offline gehen, schwerwiegende Datenbeschädigungen oder Datenverluste auftreten.
5. Nutzen Sie alle Alarmverwaltungsfunktionen, die Ihr SQL Server-Leistungsüberwachungstool bietet
SQL Server-Überwachungslösungen bieten eine breite Palette von Verwaltungsfunktionen. Nehmen Sie sich etwas Zeit, um sich mit den Funktionen Ihres Tools vertraut zu machen, und stellen Sie sicher, dass Sie den größtmöglichen Nutzen aus Ihrer Investition ziehen.
Einige Funktionen, auf die Sie achten sollten, die Ihnen helfen, Ihren Leistungsüberwachungsprozess zu verbessern, sind:
Regeln: Lässt Sie anpassen, welche Alarme ausgelöst werden und wann
Diagnose: Teilt Ihnen mit, dass ein Problem vorliegt, und bietet dann mögliche Lösungen an
Problempriorisierung: Konzentriert Ihre Aufmerksamkeit zuerst auf die Probleme mit dem höchsten Schweregrad
Mobile Benachrichtigungen: Ermöglicht es Ihnen, von überall und jederzeit auf Alarme zuzugreifen, sie zu bewerten und mit der Sichtung zu beginnen
Rauschunterdrückung: Hilft Ihnen, Alarmmüdigkeit zu vermeiden, indem Sie nur die Benachrichtigungen erhalten, die Sie benötigen