Datenbankadministratoren tragen viele Aufgaben hinter den Kulissen – von der Kapazitätsplanung über die Sicherheit bis hin zur Datenwiederherstellung. Die vielleicht sichtbarste Verantwortung des DBA ist die Leistungsüberwachung von SQL Server. Obwohl die täglichen Aufgaben, die mit der Wartung eines Hochleistungssystems verbunden sind, von der Außenwelt unbemerkt bleiben, glauben Sie besser, dass die Leute anfangen werden, darauf zu achten, wenn die Leistung nicht optimal ist.
Datenbankausfälle, langsame Reaktionszeiten und andere benutzerseitige Probleme sind schlecht fürs Geschäft. Und da die SQL Server-Leistung (oder deren Fehlen) in der DBA-Domäne direkt abfällt, sind schlecht funktionierende Datenbanken schlecht für Ihre Arbeitsplatzsicherheit.
Abgesehen von der drohenden Arbeitslosigkeit ist die Sicherstellung der Spitzenleistung von SQL Server entscheidend für den reibungslosen Betrieb Ihres Unternehmens. Deshalb haben wir fünf Tricks zusammengestellt, die DBAs kennen müssen, um die Leistung von SQL Server zu optimieren.
Routineaufgaben und Wartung automatisieren
Heutzutage gibt es für einen DBA kaum einen Grund, viele alltägliche Aufgaben und Wartungsprüfungen manuell durchzuführen. Die heutigen Tools zur Leistungsüberwachung von SQL Server können den Speicherplatz automatisch überwachen, Fehlerprotokolle untersuchen und Sicherungen überprüfen. Sie können sogar Systemwarnungen einrichten, die Sie nicht nur über ein Problem informieren, sondern auch Informationen über den Schweregrad und die Art des Problems liefern.
Einer der Hauptvorteile dieser Überwachungstools besteht darin, dass viele der Leistungsüberwachungsfunktionen über Ihr mobiles Gerät zugänglich sind, wodurch die Fehlerbehebung viel flexibler wird. Sie können Ihr System praktisch jederzeit und von überall aus überwachen und selektieren.
Leistungskennzahlen verfolgen
Natürlich ist es für Ihre SQL Server-Leistungsüberwachungstools wichtig, aktuelle Probleme zu erkennen und zu beheben, aber es ist auch sehr wertvoll, die vergangene Leistung im Auge zu behalten. Die Überwachung und Analyse der Datenbankleistung im Laufe der Zeit hilft Ihnen, Trends zu erkennen und zukünftige Leistungsprobleme zu antizipieren. Die Verfolgung des Leistungsverlaufs liefert Daten darüber, ob die Leistung über einen bestimmten Zeitraum besser oder schlechter war.
Die Workload-Analyse ist eine weitere Möglichkeit, Leistungsmetriken zu erhalten, die Ihnen helfen, die Leistung von SQL Server zu verbessern. Führen Sie eine Analyse durch, um festzustellen, wie sich ein Benutzer, eine Datenbank, ein Host oder eine SQL-Anweisung auf Ihre Arbeitslast auswirkt. Wenn Sie eine Quelle isolieren, die sich negativ auf das System auswirkt, wird es viel einfacher, die geeigneten Schritte zur Behebung des Problems zu unternehmen.
Identifizieren Sie die Grundursache von Engpässen
Wie oben erwähnt, ist es viel einfacher, das Problem zu beheben, sobald Sie die Quelle eines Engpasses oder Leistungskillers isoliert haben. Einige häufige Ursachen für Engpässe und Symptome, auf die Sie achten sollten, sind:
- CPU-Probleme:SQL Server belastet den Prozessor
- Speicherprobleme:Längere Ausführungszeiten der Abfragen
- Speicherprobleme:Extreme Aktivität auf den Festplatten und lange Wartezeiten pro I/O
- E/A-Probleme:Die WRITELOG-Wartezeit ist im Vergleich zur Gesamtwartezeit hoch
Sobald Sie Ihren Engpass identifiziert haben, können Sie einige einfache Lösungen ausprobieren, die häufig allgemeine Leistungsprobleme beheben, darunter:
- SQL Server-Optimierung:Isolieren Sie die spezifische verzögerte Abfrage, die spezifische Wartezeit, die die Verzögerung verursacht, und die Zeitauswirkung des Engpasses
- Veraltete und doppelte Indizes entfernen:Beschleunigt Abfragen, da der Optimierer bei der Analyse der Abfrageleistung und der Festlegung eines Plans nicht mehrere Indizes berücksichtigen muss.
- Fragmentierung beheben:Die regelmäßige Neuerstellung oder Defragmentierung Ihrer Indizes verbessert die Leistung, indem die Anzahl verstreuter oder teilweise gefüllter Datenseiten reduziert wird, die SQL Server lesen muss.
Führen Sie routinemäßige Leistungszustandsprüfungen durch
Vorbeugen ist fast immer besser als heilen. Verwenden Sie Zustandsprüfungen, um tatsächliche und potenzielle Probleme innerhalb des Systems zu identifizieren. Integritätsprüfungen helfen Ihnen, Probleme mit Sicherheit, Notfallwiederherstellung, Arbeitsspeicher, E/A und Konfiguration zu lokalisieren, bevor sie größere Leistungsprobleme verursachen.
Regelmäßige Zustandsprüfungen sollten Folgendes umfassen:
- Prüfen auf fehlende Indizes:Fehlende Indizes führen dazu, dass SQL Server langsam reagiert, da es jeden Datensatz nach Daten durchsuchen muss. Aber seien Sie nicht zu schnell und fügen Sie einfach fehlende Indizes hinzu; Das Hinzufügen unnötiger Indizes kann sich ebenfalls negativ auf die Leistung auswirken.
- Achten Sie auf unverhältnismäßig viele Ad-hoc-Abfragen:Die gelegentliche Verwendung von Ad-hoc-Abfragen ist kein Problem. Aber wenn sie zu häufig verwendet werden, leidet die Leistung. SQL Server verwendet diese Anweisungen nicht wieder, sodass der Prozedurcache aufgebläht wird, was dazu führt, dass der Puffercache Daten löscht. SQL Server muss dann Daten vom Datenträger (langsam) statt aus dem Arbeitsspeicher lesen.
- Nach veralteten Statistiken suchen:Der Abfrageoptimierer von SQL Server verwendet Statistiken, um die geschätzten Kosten der Operationen zu berechnen. Veraltete Statistiken können dazu führen, dass der Abfrageoptimierer einen suboptimalen Ausführungsplan auswählt.
Upgrade auf die neueste SQL Server-Version
Dies fühlt sich irgendwie offensichtlich an, aber wenn Sie es noch nicht getan haben, aktualisieren Sie auf die neueste Version von SQL Server. SQL Server 2000, 2005 und 2008 werden nicht mehr aktiv weiterentwickelt, und die neueren Versionen haben viele Funktionen, die die Leistung definitiv steigern werden. Zu diesen Funktionen gehören die neueste Version des SQL Server-Abfrageoptimierers, neue CPU-Befehlssätze und natürlich Fehlerbehebungen.