Anwendungs- und Systemleistung spielen eine große Rolle dabei, wie ein Benutzer den Wert Ihres Produkts und die Kompetenz Ihres Unternehmens wahrnimmt. Wenn die gleiche Seite ständig abläuft oder der Zugriff auf einen kritischen Bericht ewig dauert, wird die Leistung Ihres Datenbanksystems ein Vertrauensproblem für Ihr Unternehmen schaffen.
Hohe Verfügbarkeit und zuverlässige Leistung sind der Schlüssel zur Zufriedenheit von Kunden und internen Systembenutzern und können sich sogar auf Ihr Endergebnis auswirken. Angesichts dieser Ziele ist die Implementierung einer umfassenden SQL Server-Leistungsüberwachungsstrategie ein Muss.
Vorteile der SQL Server-Leistungsüberwachung
Der am häufigsten angepriesene Vorteil der Leistungsüberwachung ist die einfache Fehlerbehebung und Problemlösung. Ein gut konfiguriertes SQL Server-Überwachungstool ist das effizienteste Mittel, um Server- und Datenbankprobleme schnell zu finden und zu beheben, bevor sie sich auf Endbenutzer auswirken oder zu großen, teuren Problemen werden.
Neben der Aufrechterhaltung des Systemzustands kann die Implementierung der SQL Server-Leistungsüberwachung dazu beitragen, Ihre Infrastrukturkosten niedrig zu halten. Ein Beispiel sind unnötige Lagerkosten. Wenn die Leistung von SQL Server optimiert wird, wird das Wachstum der Dateigröße kontinuierlich überwacht. Eine übermäßige Zunahme der Dateigröße löst eine Warnung aus, sodass das Problem behoben werden kann, bevor der Festplattenspeicher erschöpft ist und zusätzliche Ressourcen auf das Problem geworfen werden.
Und wenn Sie sich für eine Cloud-basierte Überwachungslösung entscheiden, können Sie den ROI noch weiter steigern, indem Sie sich von den Kosten für die Unterbringung und Wartung physischer Server verabschieden.
Verfolgen Sie diese Metriken, um Ihre SQL Server-Leistung zu verbessern
Wir wissen, dass die Leistungsüberwachung von SQL Server eine großartige Strategie ist, um Probleme zu beheben und Geld zu sparen, aber Sie werden nicht den vollen Nutzen aus Ihrem SQL Server-Überwachungstool ziehen, wenn Sie nicht die richtigen Metriken verfolgen. Um eine optimale Leistung von SQL Server zu erzielen, sind hier fünf Bereiche, die Sie beobachten sollten, und die wichtigsten Metriken, die Sie von jedem nachverfolgen sollten.
1. Puffer-Cache
Der Puffercache speichert Kopien kürzlich verwendeter Datenbankseiten. SQL Server sucht zuerst im Cache, aber wenn es dort nicht findet, wonach es sucht, geht es auf die Festplatte. Das Lesen von der Festplatte ist langsam, was sich negativ auf die Leistung auswirken kann.
Cache-Trefferquote
Die Cache-Trefferquote zeigt, wie häufig SQL Server auf Seiten aus dem Cache zugreift. Höhere Werte zeigen an, dass auf die Seiten aus dem Arbeitsspeicher und nicht von der Festplatte zugegriffen wurde. Wenn Sie ständig eine niedrige Cache-Trefferquote sehen, suchen Sie nach einem Engpass im Systemspeicher.
Lebenserwartung der Seite
Die Überwachung der Lebenserwartung von Seiten zeigt, wie lange eine Seite im Arbeitsspeicher verbleibt, anstatt auf die Festplatte zu gehen. Je länger die Lebenserwartung der Seite, desto besser die Cache-Trefferquote.
Checkpoint-Seiten/Sek.
SQL Server richtet Prüfpunkte ein, um Speicherplatz im Puffercache freizugeben, indem geänderte Seiten regelmäßig aus dem Puffer auf den Datenträger geleert werden. Die Anzahl der geleerten Seiten hängt von den Konfigurationseinstellungen und der Servernutzung ab, daher ist es wichtig, eine Baseline zum Vergleich festzulegen. Wenn Sie feststellen, dass mehr Seiten geleert werden, liegt möglicherweise ein E/A-Problem vor.
2. Indizes
Datenbankindizes helfen, Operationen in Tabellen mit vielen Datensätzen zu beschleunigen. Obwohl Indizes ein nützliches Werkzeug zur Verbesserung einiger Datenbankfunktionen sind, gibt es inhärente Probleme mit Indizes, die die Leistung beeinträchtigen können, wenn sie nicht schnell erkannt werden.
Fragmentierung
Indexfragmentierung tritt auf, wenn Datensätze hinzugefügt und gelöscht werden. Im Laufe der Zeit führen diese Änderungen zu Leistungsproblemen, da auf zu vielen Seiten zu viel Leerraum verbleibt und neue Seiten in falscher Reihenfolge hinzugefügt werden. Dies kann Scans verlangsamen und übermäßig viel Speicher verbrauchen.
Durch die Überwachung der Indexfragmentierung werden Sie darüber informiert, wenn Sie einen Index neu erstellen oder neu organisieren müssen, um die Fragmentierung zu beheben und die Leistung zu verbessern.
Füllfaktor und Seitenaufteilung
Die Einstellung des Füllfaktors teilt Ihren Indizes mit, wie voll jede Seite sein sollte. Wenn eine Seite zu voll ist, kommt es zu Seitenteilungen; Wenn eine Seite nicht voll genug ist, verschwenden Sie Ressourcen.
Das Nachverfolgen von Seitenaufteilungen kann dabei helfen, festzustellen, wann eine Anpassung des Füllfaktors erforderlich ist. Legen Sie für die beste Leistung keinen systemweiten Füllfaktorwert fest. Werten Sie einzelne Indizes aus und stellen Sie den Füllfaktor für jeden auf einen geeigneten Wert ein.
3. T-SQL
Um die Leistung zu optimieren, stapelt SQL Server SQL-Anweisungen, kompiliert sie dann in Ausführungspläne und speichert sie zur Wiederverwendung zwischen. Wenn SQL Server den Ausführungsplan nicht wiederverwenden kann, wird der Plan neu kompiliert, was viel CPU beansprucht und die Leistung beeinträchtigt. Daher ist es am besten, die Anzahl der Neukompilierungen von SQL-Anweisungen so gering wie möglich zu halten.
Die Überwachungsraten der SQL-Kompilierung und -Neukompilierung zeigen, ob Sie einige Bereiche neu konfigurieren müssen, wie z. B. gespeicherte Prozeduren und Abfrageparameter.
4. Blockieren
Die SQL Server-Blockierung wird von mehreren Clients und Prozessen verursacht, die gleichzeitig Zugriff auf dieselben Ressourcen anfordern. Wenn eine Ressource bereits verwendet wird, wird der Zugriff gesperrt und die Ressource ist für nachfolgende Anforderungen nicht verfügbar. Dadurch wird der Prozess angehalten, bis die Ressource freigegeben und wieder verfügbar ist.
Lock Waits
Anfragen müssen normalerweise nicht auf Sperren warten, daher sollte diese Metrik um null bleiben. Eine Erhöhung der Sperrwartezeiten weist auf ein Problem mit der Ladezeit hin, daher müssen Sie die Ursache des Problems aufspüren.
Blockierte Prozesse
Das Verfolgen blockierter Prozesse ist eine gute Möglichkeit, um zu vermeiden, dass viele E-Mails Sie über einen blockierten Prozess informieren. Verwenden Sie SQL Server Profiler, um Daten zu blockierten Prozessen zu erfassen, und überprüfen Sie den Bericht regelmäßig.
5. Ressourcennutzung
Das Verfolgen von Ressourcennutzungsmetriken ist eine effektive Möglichkeit, nicht nur Leistungsprobleme zu lokalisieren, sondern auch bei der Kapazitätsplanung zu helfen.
Zeilenanzahl
Die Überwachung der Zeilenanzahl bietet einen direkten, leicht nachvollziehbaren Einblick in das Datenvolumen, das einer bestimmten Tabelle im Laufe der Zeit zugeordnet ist. Eine unerwartete Erhöhung oder Verringerung der Zeilenanzahl sollte eine Untersuchung der Ursache veranlassen.
Datenbankdatei-I/O
Indem Sie E/A-Metriken anhand von Datenbankdateien messen, können Sie nachverfolgen, wie viele Daten von einer bestimmten Datendatei geschrieben und gelesen werden. Wenn Sie ein potenzielles Problem beobachten, kann diese Metrik dabei helfen, die Grundursache einzugrenzen. Das Verfolgen von Datenbankdatei-E/A hilft auch bei der Infrastrukturplanung, da es Ihnen helfen kann, den zukünftigen Datendurchsatz vorherzusagen und die Ressourcen entsprechend anzupassen.
Transaktionsprotokollsicherungsgröße
Wenn ein Server wegen Überlastung abstürzt, verwendet SQL Server die in virtuellen Protokolldateien (VLFs) gespeicherten Datenbankprotokolldatensätze zur Wiederherstellung. Es ist wichtig, zu überwachen, wie viele VLFs sich im Transaktionsprotokoll befinden, da zu viele die Wiederherstellungsprozesse beim Wiederherstellen nach einem Ausfall verlangsamen können.
Die Leistungsüberwachung von SQL Server ist eine entscheidende Komponente der Qualitätskontrollstrategie eines Unternehmens. Das Verfolgen einiger wichtiger Leistungsmetriken kann Ihnen den Ruf verschaffen, Ihren Benutzern ein System bereitzustellen, dem sie vertrauen und auf das sie sich verlassen können. Wenn Sie dies nicht tun, kann Ihr System zu einer weiteren fehlerhaften Anwendung werden, die Benutzer fürchten.