Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Top 10 häufig gestellte Fragen zur SQL Server-Leistungsüberwachung

Die Leistungsüberwachung von SQL Server wird von vielen Datenbankadministratoren als ihre wichtigste Aufgabe angesehen. Angesichts der Tatsache, dass schlecht funktionierende Server nicht nur den internen Betrieb, sondern auch kundenorientierte Anwendungen beeinträchtigen können, sind die Nachverfolgung der SQL-Leistung und die schnelle Behebung von Problemen entscheidend für den Erfolg und die Rentabilität des Unternehmens.

Da sich immer mehr Unternehmen SQL Server zuwenden, suchen DBAs zunehmend nach Ressourcen, die ihnen helfen, eine solide Strategie zur Leistungsüberwachung zu implementieren. Es gibt eine Fülle von Dokumentationen, die DBAs dabei helfen sollen, ihre SQL Server-Leistungsüberwachung zu starten, aber es gibt ein paar universelle Fragen, auf die fast jeder DBA eine schnelle Antwort haben möchte. Hier finden Sie Antworten auf 10 der am häufigsten gestellten Fragen zur Leistungsüberwachung von SQL Server.

Was ist die Leistungsüberwachung von SQL Server?

Der Hauptzweck der SQL Server-Leistungsüberwachung besteht darin, eine konsistente Leistung und hohe Verfügbarkeit von SQL Server-Instanzen sicherzustellen. Die Leistungsüberwachung ist ein zweiteiliger Prozess, und beide Teile sind unerlässlich, um Ihr System optimal am Laufen zu halten:

  • Überwachung: Verfolgen Sie eine Vielzahl von Leistungsmetriken anhand voreingestellter Schwellenwerte, um anomales Verhalten zu identifizieren, und stellen Sie einen Mechanismus bereit, um den DBA mit spezifischen Alarmen für das Problem zu informieren und genügend Kontext bereitzustellen, um den Diagnoseprozess zu beginnen.

  • Diagnose: Der Workflow und die Tools, die erforderlich sind, um die Ursache eines Leistungsproblems zu ermitteln, und die Daten, die zur Behebung des unmittelbaren Problems erforderlich sind.

  • Ursachenanalyse: Die Erkenntnisse, um über die Symptome hinauszublicken und zugrunde liegende Probleme zu identifizieren, die das Problem ausgelöst haben und dazu führen können, dass es erneut auftritt.

  • Trendanalyse: Betrachten Sie die Leistung über längere Zeiträume. Verwenden Sie Trendanalysen, um Probleme zu identifizieren, bevor sie auftreten, um zwischen einmaligen und wiederkehrenden Problemen zu unterscheiden oder um die Workload-Grenzen im Laufe der Zeit zu untersuchen. Letzteres kann verwendet werden, um zukünftige Infrastrukturanforderungen vorherzusagen, Konsolidierungsbemühungen oder die richtige Größe für eine geplante Cloud-Migration zu informieren.

Welche Tools zur Überwachung der Datenbankleistung sind die besten?

Die Anzahl der Datenbanken, für die ein DBA verantwortlich ist, macht eine manuelle Überwachung und Diagnose unpraktisch – vielleicht sogar unmöglich. Glücklicherweise sind die neuesten Softwarelösungen zur Leistungsüberwachung mit einer Vielzahl von Funktionen ausgestattet, die die Leistungsüberwachung selbst in großem Umfang handhabbar machen:

  • Effektives Alarmmanagement: Die Priorisierung von Alarmen bedeutet, dass Sie die großen Probleme zuerst angehen und Fehlalarme ignorieren können.

  • Umfassende Diagnostik: Mit den besten Tools zur Leistungsüberwachung können Sie tief in die Diagnose eintauchen. Zu wissen, dass es ein Problem gibt, ist bei weitem nicht so hilfreich wie zu wissen, wie es behoben werden kann.

  • Schnelle Amortisationszeit: Jede Instanz sammelt Hunderte von Metriken, und die Speicherung vor Ort wird schnell teuer. Erwägen Sie eine der SaaS-Leistungsüberwachungslösungen für Kosteneinsparungen und Skalierbarkeit.

  • Analyse: Robuste Analysen sind ein wichtiges Unterscheidungsmerkmal zwischen Tools zur Leistungsüberwachung. Wählen Sie für eine maximale Auswirkung auf die Leistung ein Tool aus, das umfassende Metriken für Workload, Abfrageplan, Alarmgrundursache und Blockierung bereitstellt.

  • Verlaufsdatenverfolgung: Suchen Sie nach einem Tool zur Leistungsüberwachung, das historische Daten speichert. Dadurch wird die Fehlerbehebung beschleunigt, da Sie wissen, ob ein Problem wiederholt auftritt und wie sich Probleme im Laufe der Zeit verfolgen.

  • Tuning und Abfrageplanoptimierung: Ein Tool mit integrierter künstlicher Intelligenz ermöglicht es Ihnen, Abfragen zu verfeinern und für eine bestimmte Instanz zu optimieren.

  • Gesundheitsprüfungen: Zustandsprüfungen überwachen die Vitalfunktionen von SQL Server, um Sie auf ein mögliches Problem hinzuweisen – manchmal bevor das Problem überhaupt existiert.

Wenn Sie ein Tool mit allen oben beschriebenen Funktionen wünschen, müssen Sie sich nach einer der Cloud-gesteuerten SQL Server-Leistungsüberwachungslösungen umsehen. Diese Überwachungstools sind unübertroffen in Skalierbarkeit, Flexibilität und Preis und bieten eine sichere Leistungsüberwachungsplattform für jeden Bedarf.

Wie lässt sich die Überwachung der Datenbankleistung am besten optimieren?

Eine der besten Möglichkeiten zur Optimierung der Leistungsüberwachung ist die Automatisierung. Die Automatisierung allgemeiner Aufgaben – wie die Überwachung des Festplattenspeichers, die Überprüfung von Fehlerprotokollen und die Überprüfung der Datenbanksicherungen – stellt sicher, dass diese Aufgaben abgeschlossen werden, wodurch der DBA mehr Zeit für wichtigere Aufgaben hat.

Darüber hinaus können Sie Folgendes implementieren, um Ihre SQL Server-Leistungsüberwachung zu optimieren:

  • Mobile Überwachung: Die mobile Überwachung ist auf Ihren Android- und iOS-Geräten verfügbar. Durch die Bereitstellung von Heatmaps, intelligenten Alarmen und Alarmlisten ermöglicht Ihnen die mobile Leistungsüberwachung, Probleme zu diagnostizieren und von überall aus mit der Triage zu beginnen.

  • Tuning und Abfrageoptimierung: Mit der Leistungsoptimierung können Sie Ihre SQL-Abfrage- und -Ausführungspläne visualisieren, analysieren und optimieren, indem Sie die kostenintensivsten Operatoren hervorheben, Lösungsvorschläge für Probleme anbieten und Ihre Abfragen und Ihren Abfrageplan umschreiben/optimieren.

  • Gesundheitsprüfungen: Zustandsprüfungen helfen Ihnen, Ihre Leistungsüberwachung zu optimieren, indem sie Zustandsprobleme in jeder SQL Server-Instanz lokalisieren, einschließlich langer Wartezeiten und E/A-Latenz. Integritätsprüfungen liefern auch Verlaufsdaten, sodass Sie Leistungsprobleme im Laufe der Zeit verfolgen können.

Wie sollte ich ein SQL Server-Überwachungstool auswählen?

Bei der Entscheidung für ein SQL Server-Leistungsüberwachungstool gibt es zwei Hauptüberlegungen.

Nach welcher Art von Tool suchen Sie?

Es gibt drei Haupttypen von Tools zur Leistungsüberwachung, die in Betracht gezogen werden sollten:

  • Kundenspezifisch/intern gebaut: Denken Sie in diesem Fall daran, dass Sie etwas nicht immer tun sollten, nur weil Sie es können. Ja, Sie können ein internes Leistungsüberwachungstool zusammenstellen, um Metriken mit PerfMon, Traces, DMVs und XEvents zu sammeln. Aber die Nachteile überwiegen bei weitem die Vorteile dieses Weges. Es ist nicht skalierbar, sodass Ihre Leistungsüberwachungsfunktionen leiden, wenn Ihre Instanzen zunehmen. Außerdem ist es nicht möglich, alle Dinge zu überwachen, die Sie beachten müssen, um eine optimale SQL Server-Leistung sicherzustellen. Sobald Sie anfangen, Daten zu sammeln, müssen Sie sie irgendwo speichern, damit sie nützlich sind, und das kann teuer werden. Fazit:Ist es für Sie wertvoller, Ihre kostbare Zeit mit dem Aufbau und der Wartung eines Leistungsüberwachungstools zu verbringen oder damit, unternehmenskritische Workloads zu reparieren und zu optimieren?

  • Kostenlos/Open Source: Dies ist möglicherweise eine bessere Wahl als das Erstellen einer eigenen Leistungsüberwachungslösung, aber es gibt immer noch Einschränkungen. Obwohl Sie ein wenig an Anpassungsmöglichkeiten gewinnen, fehlt es Ihnen immer noch an Abdeckung und vorkonfigurierten Benachrichtigungen. Sie müssen auch weiterhin Ihren eigenen Datenspeicherplatz bereitstellen. Es ist ein komplexer Prozess, ein Tool zu erstellen, das große Mengen an Leistungsdaten effektiv erfassen kann, ohne den überwachten Server zu beeinträchtigen, die geeigneten Schwellenwerte für Hunderte von Metriken festzulegen, große Mengen an gesammelten Daten zu verwalten und diese dann von einer Version von auf dem neuesten Stand zu halten SQL-Server zum nächsten. Konzentrieren Sie sich auf die Lösung von Problemen und nicht auf den Aufbau von Leistungsüberwachungssystemen. Wenn Sie auf Community-Updates angewiesen sind, kann die Unterstützung für neue Versionen einer Datenbankplattform ihre Veröffentlichung verzögern.

  • Werbung: Kommerzielle SQL-Leistungsüberwachungstools bieten eine Reihe von Funktionen und Anpassungsstufen, und viele davon sind überraschend erschwinglich. Kommerzielle Tools erleichtern die Leistungsüberwachung mit Optionen wie Zustandsprüfungen, Alarmverwaltung, Leistungsdiagnose und mobilen Überwachungsfunktionen – Funktionen, die Sie von kostenlosen oder intern entwickelten Tools nicht erhalten.

Was sind Ihre Anforderungen an Ihre spezifische Umgebung?

Stellen Sie sich vor der Auswahl eines Tools zur Leistungsüberwachung die folgenden Fragen, damit Sie das Tool finden können, das Ihren spezifischen Anforderungen entspricht:

  • Wie viele Instanzen möchten Sie überwachen?

  • Sind sie zusammengelegt oder verstreut?

  • Sind sie vor Ort oder in der Cloud (oder beides)?

  • Können Sie sich eine Pauschalzahlung für Infrastruktur und Lizenzierung leisten, oder müssen Sie die Kosten verteilen?

  • Verfügen Sie über Infrastruktur- und Datenbankinstanzen, die Sie einem Überwachungstool zuweisen können?

  • Haben Sie intern Zeit oder Ressourcen, um eine Überwachungsinfrastruktur aufzubauen und zu warten?

  • Ist das Tool in der Lage, die Arbeitsbelastung sofort in mehreren Dimensionen zu analysieren, um Ihnen Stunden beim Skripting zu ersparen?

  • Gibt es eine intelligente Funktion, um die Daten zu analysieren und Ihnen zu helfen, bestimmte Probleme zu identifizieren?

  • Bietet das Tool sofortige Diagnosen, Best Practices oder Diagnosen für den relevanten Drilldown?

Wie lässt sich der Zustand der Datenbankleistung am besten überwachen?

Es gibt mehrere Anzeichen dafür, dass Ihr SQL Server fehlerhaft ist, darunter:

  • Allgemeine Verlangsamung der Arbeitslast

  • Verbindungs-/Abfragezeitüberschreitungen

  • Übermäßige CPU-Auslastung

  • Gedächtnisdruck

  • Übermäßige E/A-Lese-/Schreiblatenz

  • Übermäßige Größe des Transaktionsprotokolls oder der TempDB

Wenn Sie eines dieser Symptome bemerken, ist es an der Zeit, Zustandsprüfungen einzurichten, um Ihr System wieder auf Höchstleistung zu bringen. Einige erste Schritte, die Sie unternehmen können, um die Ursache von Leistungsproblemen zu identifizieren, sind:

  • Erstellen einer Leistungsbaseline und Messen daran

  • Sicherungen überprüfen

  • Suche nach fehlenden Indizes

  • Bestimmen, welcher Prozentsatz der Arbeitslast von Ad-hoc-Abfragen stammt

Was sind die besten Metriken für die Leistungsüberwachung von SQL Server?

Es gibt Hunderte von Metriken, die Sie messen können, um die Leistung zu verfolgen und zu verbessern, aber es gibt einige herausragende Merkmale, die Teil jedes SQL Server-Wartungsplans sein sollten. Hier sind einige der wichtigsten Bereiche, die Sie überwachen sollten, und die Messwerte, die Sie im Auge behalten sollten:

  • Indizes. Indizes sind eine häufige Quelle von Leistungsproblemen, da sich Datenbanken ständig ändern. Daten werden hinzugefügt und entfernt, und Indizes werden geändert und gelöscht, was alles zu einer schlechten Leistung beiträgt. Dies sind die Messwerte, die Sie im Auge behalten sollten:

    • Füllfaktor
    • I/O
    • Fragmentierung
  • Puffer-Cache. Es ist wichtig, den Puffercache so zu konfigurieren, dass die Dauer optimiert wird, während der Seiten dort bleiben, ohne es zu übertreiben und Speicher zu belegen, der an anderer Stelle benötigt wird. Dies sind die Messwerte, die Sie im Auge behalten sollten:

    • Lebenserwartung der Seite
    • Puffer-Cache-Trefferquote
  • T-SQL. Anstatt SQL-Anweisungen ad hoc auszuführen, fasst SQL Server sie zusammen, kompiliert sie in einen Ausführungsplan und speichert sie zwischen, wobei die Anweisungen nach Bedarf neu kompiliert werden. Übermäßige Kompilierungen und Neukompilierungen können die Leistung beeinträchtigen. Dies sind die Messwerte, die Sie im Auge behalten sollten:

    • SQL-Kompilierungen
    • SQL-Neukompilierungen
  • Andere Metriken, die Sie genau beobachten sollten:

    • Sperrt Wartezeiten und blockierte Prozesse
    • CPU-Auslastung

Was sind häufige Probleme bei der Überwachung der Datenbankleistung?

Leistungsengpässe

Leistungsengpässe äußern sich in langsamen oder nicht reagierenden Datenbanken. Engpässe können schwierig zu lokalisieren sein, da sie speicher-, speicher- oder prozessorbezogen sein können. Es gibt jedoch ein paar Stellen, an denen Sie zuerst nach Problemen suchen sollten:

  • WRITELOG-Wartezeit
  • NESTED LOOP JOIN
  • TempDB-Konflikt

Niedrige Seitenlebenserwartung (PLE)

Ein niedriger PLE-Wert beeinträchtigt die Leistung, da SQL Server häufiger auf die Festplatte wechseln muss, um Datendateien zu finden, was viel länger dauert, als sie aus dem Puffercache zu lesen.

Fragmentierung

Überprüfen Sie Ihre Indizes auf übermäßige Fragmentierung. Die Leistung von SQL Server leidet, wenn verstreute und teilweise gefüllte Seiten nach Daten durchsucht werden müssen.

Wie sollte ich mein System zur Überwachung der Datenbankleistung einrichten?

Sobald Sie sich für eine SQL Server-Leistungsüberwachungslösung entschieden haben, ist es an der Zeit, sie zum Laufen zu bringen. Auch wenn Sie vielleicht sofort in all die glänzenden neuen Funktionen eintauchen möchten, wird es Ihnen helfen, einen Schritt zurück zu gehen und den Prozess methodisch anzugehen, um sicherzustellen, dass Sie das Beste aus Ihrem System herausholen. Hier sind einige Tipps für das Onboarding Ihres neuen Performance-Management-Tools:

  • Entscheiden Sie, welche Instanzen Ihre Aufmerksamkeit am meisten erfordern

  • Führen Sie die Voraussetzungen durch

  • Informieren Sie sich über Ihre Systemanforderungen

  • Laden Sie das Installationsprogramm herunter

  • Verbindungen hinzufügen

Welche Abfragen kann ich für die Leistungsüberwachung von SQL-Servern verwenden?

Die Abfragen, die Sie für die Leistungsüberwachung verwenden, variieren je nach den Metriken, die Sie verfolgen. Das Erkennen von Speicherproblemen, das Bewerten der Indexdefragmentierung und das Identifizieren inakzeptabler Wartezeiten stehen jedoch wahrscheinlich ganz oben auf der Checkliste zur Leistungsüberwachung jedes DBA. Die SQL Server-Dokumentation von Microsoft enthält Details zu einer Reihe von Abfragen, die Ihnen bei der Implementierung Ihres Leistungsüberwachungsplans helfen:

  • Speichernutzung

  • Index-Defragmentierung

  • Wartestatistik

Was sind die Best Practices für die Überwachung der Datenbankleistung?

Einige Leute sind mit dem Begriff „Best Practices“ nicht einverstanden, aber wenn es um die Leistungsüberwachung von SQL Server geht, gibt es keinen Zweifel daran, dass ein DBA bestimmte Dinge tun muss, um das System gesund und die Benutzer zufrieden zu stellen.

Indexpflege zur Priorität machen

Die Vernachlässigung Ihrer Indizes ist ein sicherer Weg, um Leistungsprobleme zu erzeugen. Indizes sind die Quelle gängiger Leistungskiller, einschließlich Fragmentierung und Seitenteilungen.

Kennen Sie Ihre Arbeitsbelastung

Es ist schwer zu erkennen, wann Sie ein Problem haben, wenn Sie nicht wissen, wie „normal“ aussieht. Nehmen Sie sich etwas Zeit, um Ihre Arbeitsbelastung kennenzulernen, indem Sie Fragen stellen wie:

  • Wann ist diese Instanz am stärksten frequentiert?

  • Welche Anwendungen verwenden diese Instanz?

  • Wann war die letzte Sicherung?

  • Hat diese Instanz bekannte Leistungsprobleme?

Wählen Sie ein Leistungsüberwachungstool, das Ihren spezifischen Anforderungen entspricht

Bevor Sie sich für ein SQL Server-Leistungsüberwachungstool entscheiden, müssen Sie zunächst Ihre Anforderungen definieren. Sobald Sie verstehen, was Sie mit Ihrem Leistungsüberwachungstool erreichen möchten, können Sie getrost nach einer Lösung mit den Funktionen suchen, die Ihren Anforderungen entsprechen.

Leistungsengpässe finden und beheben

Zu den offensichtlichen Symptomen von Leistungsengpässen gehören die Verwendung von zu viel Speicher, lange Wartezeiten, Indexfragmentierung und zu viele oder zu wenige Indizes. Diese Engpässe schnell zu finden und zu beheben, ist eine der Hauptaufgaben eines DBA. Der beste Weg, um die Datenbankleistung auf höchstem Zustand zu halten, besteht darin, ein Leistungsüberwachungstool zu implementieren, mit dem Sie Leistungsengpässe und andere Ursachen für Leistungseinbußen leicht lokalisieren und beheben können.