1. Einleitung
1.1 Was ist SQL Server Aktivitätsmonitor?
SQL Server Der Aktivitätsmonitor ist eine integrierte Diagnosefunktion.ostic tool within SQL Server Management-Studio, das Informationen anzeigt über SQL Server Prozesse und deren Auswirkungen auf die Serverleistung. Es ermöglicht Ihnen, diese zu verfolgen. SQL Server Prozesse verarbeiten, Ressourcenwartezeiten überwachen, teure Abfragen analysieren und E/A-Muster beobachten – alles über eine einzige Schnittstelle.
1.2 Warum verwenden? SQL Server Aktivitätsmonitor?
Der Aktivitätsmonitor dient als erste Verteidigungslinie bei der Fehlerbehebung von Leistungsproblemen. Er bietet sofortigen Einblick in die Vorgänge auf Ihrem System. SQL Server Instanziierung ohne die Notwendigkeit komplexer T-SQL-Abfragen oder Tools von Drittanbietern.
Das Tool eignet sich hervorragend, um häufig auftretende Probleme wie blockierende Sitzungen, CPU-intensive Abfragen, übermäßige Abfrageausführungen und E/A-Engpässe schnell zu identifizieren. Wenn Benutzer melden, dass eine Anwendung langsam oder nicht reagiert, hilft Ihnen der Aktivitätsmonitor dabei, festzustellen, ob der Datenbankserver die Ursache ist.
Für Datenbankadministratoren, die nicht mit SQL Server Der Aktivitätsmonitor bietet täglich einen einfachen Einstiegspunkt, um die Serveraktivität zu verstehen. Selbst erfahrene Datenbankadministratoren nutzen ihn als ihren Standard-DBA.tarAusgangspunkt für Leistungsuntersuchungen.
1.3 Aktivitätsmonitor im Vergleich zu anderen Überwachungstools
Der Aktivitätsmonitor ist zwar nützlich, aber es ist wichtig zu verstehen, wie er sich im Vergleich zu anderen Überwachungsoptionen schlägt:
Aktivitätsmonitor vs sp_WhoIsActive: Der Aktivitätsmonitor bietet eine grafische Oberfläche mit mehreren Bereichen, während sp_WhoIsActive eine umfassende gespeicherte Prozedur ist, die detailliertere Informationen in einem einzigen Ergebnissatz liefert. sp_WhoIsActive zeigt spezifische Wartezeittypen an, die vom Aktivitätsmonitor gruppiert werden, und liefert detailliertere Informationen zu Blockierungen.
Aktivitätsmonitor vs sp_who2: Der traditionelle Befehl sp_who2 zeigt grundlegende Sitzungsinformationen an, aber der Activity Monitor geht noch weiter, indem er Wartezeitstatistiken, teure Abfragen und E/A-Metriken in einem übersichtlichen, visuellen Format anzeigt.
Aktivitätsmonitor vs. Tools von Drittanbietern: Kommerzielle Überwachungslösungen wie SolarWinds Database Performance Analyzer bieten historische Datenerfassung, Benachrichtigungen und erweiterte Analysen, die Activity Monitor nicht bietet. Activity Monitor benötigt jedoch keine zusätzliche Software.ost oder Installation.
1.4 Wichtigste Vorteile für Datenbankadministratoren
Der Aktivitätsmonitor bietet zahlreiche Vorteile, die ihn zu einem unverzichtbaren Werkzeug für Datenbankadministratoren machen:
- Null Cost: Als eingebaut SQL Server Für die Management Studio-Funktion fallen keine Lizenzgebühren oder Implementierungsaufwand an.
- Echtzeitüberwachung: Verfolgen Sie die aktuelle Serveraktivität in Echtzeit mit konfigurierbaren Aktualisierungsintervallen von 1 Sekunde bis 1 Stunde.
- Integrierte Maßnahmen: Klicken Sie mit der rechten Maustaste auf Prozesse, um Sitzungen zu beenden, Abfragedetails anzuzeigen oder einen Startvorgang durchzuführen. SQL Server Profiler-Traces – alle aus dem Tool selbst.
- Mehrere Perspektiven: Betrachten Sie den Serverzustand aus verschiedenen Blickwinkeln mithilfe von fünf spezialisierten Bereichen, die sich jeweils auf bestimmte Leistungsaspekte konzentrieren.
- Schnelle Fehlerbehebung: Identifizieren Sie das most Häufig auftretende Leistungsprobleme werden innerhalb von Minuten behoben, wodurch sich Ihre mittlere Lösungszeit verkürzt.
- Niedrige Eintrittsbarriere: Für den effektiven Einsatz des Tools sind keine fortgeschrittenen Kenntnisse erforderlich, obwohl tiefergehende Kenntnisse notwendig sind. SQL Server Fachkenntnisse helfen bei der Interpretation.
2. S erhaltentarmit Aktivitätsmonitor
Bevor Sie den Activity Monitor effektiv nutzen können, müssen Sie die Voraussetzungen, die erforderlichen Berechtigungen und die verschiedenen Methoden zum Starten des Tools verstehen.
2.1 Voraussetzungen und Systemanforderungen
So verwenden Sie SQL Server Aktivitätsmonitor, den Sie benötigen SQL Server Management Studio (SSMS) ist auf Ihrem lokalen Rechner oder einem Jump-Server installiert. Das Tool „Aktivitätsmonitor“ wurde grundlegend überarbeitet. SQL Server Die Informationen in diesem Leitfaden gelten also für das Jahr 2008. SQL Server Versionen ab 2008.
Sie benötigen eine Netzwerkverbindung zu SQL Server Instanz, die Sie überwachen möchten. Für Cloud-hostFür den Zugriff auf Datenbanken benötigen Sie in der Regel eine VPN-Verbindung oder entsprechend konfigurierte Firewall-Regeln.
Aktivitätsmonitor funktioniert mit allen Editionen von SQL ServerDies umfasst Express, Standard und Enterprise. Das Tool selbst läuft auf Ihrem Client-Rechner innerhalb von SSMS, sodass die Serverressourcen nur durch die von ihm ausgeführten Überwachungsabfragen beeinträchtigt werden.
2.2 Erforderliche Berechtigungen
Die korrekten Berechtigungen sind für die einwandfreie Funktion der Aktivitätsanzeige unerlässlich. Ohne die entsprechenden Rechte wird möglicherweise eine leere Anzeige angezeigt oder es treten Zugriffsfehler auf.
2.2.1 Berechtigung zum Anzeigen des Serverstatus
Die SERVERSTATUS ANZEIGEN Die Berechtigung ist die wichtigste Voraussetzung für die Nutzung des Aktivitätsmonitors. Diese Serverberechtigung ermöglicht es Ihnen, alle aktiven Prozesse und die zugehörigen Metriken anzuzeigen.
Um diese Berechtigung zu erteilen, kann ein Serveradministrator Folgendes ausführen:
GRANT VIEW SERVER STATE TO [YourLoginName];
Ohne die Option SERVERSTATUS ANZEIGEN kann der Aktivitätsmonitor zwar geöffnet werden, zeigt aber in keinem seiner Bereiche Daten an.
2.2.2 Berechtigungen auf Datenbankebene
Um Informationen im Bereich „Datendatei-E/A“ anzuzeigen, benötigen Sie zusätzliche Berechtigungen. Genauer gesagt benötigen Sie eine der folgenden Kombinationen:
- DATENBANK ERSTELLEN Erlaubnis oder
- BELIEBIGE DATENBANK ÄNDERN Erlaubnis oder
- BELIEBIGE DEFINITION ANSEHEN Erlaubnis
Diese Berechtigungen müssen kombiniert werden mit SERVERSTATUS ANZEIGEN für den vollen Funktionsumfang des Aktivitätsmonitors.
2.2.3 Fehlerbehebung bei Berechtigungen
Wenn der Aktivitätsmonitor zwar geöffnet wird, aber keine Daten anzeigt, sind die Berechtigungen möglicherweise die Ursache.ost Häufige Ursache. Überprüfen Sie, ob Ihrem Login die Berechtigung VIEW SERVER STATE auf Serverebene erteilt wurde. Sie können Ihre Berechtigungen mit folgendem Befehl überprüfen:
SELECT * FROM fn_my_permissions(NULL, 'SERVER');
Suchen Sie in der Spalte „permission_name“ nach dem Eintrag „VIEW SERVER STATE“. Falls dieser fehlt, wenden Sie sich an Ihren Datenbankadministrator, um die Berechtigung erteilen zu lassen.
2.3 So öffnen Sie den Aktivitätsmonitor in SSMS
SQL Server Management Studio bietet vier verschiedene Methoden zum Starten des Aktivitätsmonitors und ermöglicht Ihnen so Flexibilität je nach Ihren Workflow-Präferenzen.
2.3.1 Methode 1: Über die Symbolleiste
Die Aktivitätsanzeige lässt sich am schnellsten über das Symbol in der Symbolleiste öffnen:
- Stellen Sie eine Verbindung zu Ihrem her SQL Server Instanz in SQL Server Management-Studio.
- Suchen Sie das Symbol für den Aktivitätsmonitor in der Standard-Symbolleiste (es ähnelt einem Balkendiagramm mit einer grünen Wiedergabetaste).
- Klicken Sie auf das Symbol, um die Aktivitätsanzeige zu starten.
Diese Methode ist am schnellsten, wenn Sie bereits in SSMS arbeiten und die Serveraktivität schnell überprüfen müssen.
2.3.2 Methode 2: Vom Objekt-Explorer
Sie können den Aktivitätsmonitor auch direkt aus dem Objekt-Explorer starten:
- Suchen Sie im Objekt-Explorer nach dem/der/das SQL Server Instanz, die Sie überwachen möchten.
- Klicken Sie mit der rechten Maustaste auf den Instanznamen.
- Wählen Sie Activity Monitor im Kontextmenü.
Diese Methode ist nützlich, wenn Verbindungen zu mehreren Servern hergestellt werden, da sie sicherstellt, dass die richtige Instanz überwacht wird.
2.3.3 Methode 3: Verwendung einer Tastenkombination
Für Benutzer, die sich auf die Tastatur konzentrieren, SQL Server Management Studio bietet eine spezielle Verknüpfung:
- Stellen Sie sicher, dass SSMS das aktive Fenster ist und Sie mit einer Instanz verbunden sind.
- Presse Ctrl + Andere + A.
- Der Aktivitätsmonitor wird für die aktuell im Objekt-Explorer ausgewählte Instanz geöffnet.
Beachten Sie, dass sich der Aktivitätsmonitor mit der Serverinstanz verbindet, die Sie im Objekt-Explorer ausgewählt haben. Stellen Sie daher sicher, dass Sie die richtige Instanz ausgewählt haben, bevor Sie diese Verknüpfung verwenden.
2.3.4 Methode 4: Über das Optionsmenü (Startup-Konfiguration)
Wenn Sie den Aktivitätsmonitor häufig verwenden, können Sie SSMS so konfigurieren, dass er automatisch gestartet wird, sobald Sie ihn starten.tarin der Anwendung:
- In SQL Server Management Studio, navigieren Sie zu Zubehör -> Einstellungen.
- Im Dialogfeld „Optionen“ erweitern ArbeitsumfeldUnd wählen Sie dann Startup.
- Von dem Bei starTUP Dropdown-Liste auswählen Objekt-Explorer und Aktivitätsmonitor öffnen.
- Wählen Sie OK.
Wenn Sie SSMS das nächste Mal starten und eine Verbindung zu einem Server herstellen, wird der Aktivitätsmonitor automatisch zusammen mit dem Objekt-Explorer geöffnet.
3. Aktivitätsmonitor-Bereiche verstehen
Der Aktivitätsmonitor ordnet die Informationen in fünf ausklappbaren Bereichen an, die jeweils eine andere Perspektive auf die Serveraktivität bieten. Das Verständnis der Inhalte der einzelnen Bereiche ist für eine effektive Fehlerbehebung unerlässlich.
3.1 Übersichtsbereich
Der Übersichtsbereich zeigt vier Echtzeitdiagramme an, die Ihnen einen schnellen Überblick über den Zustand Ihres Systems geben. SQL Server Beispielsweise werden diese Diagramme in einem konfigurierbaren Intervall aktualisiert und helfen Ihnen, auf einen Blick ungewöhnliche Muster zu erkennen.
3.1.1 % Prozessorzeit
Dieses Diagramm zeigt den prozentualen Anteil der Zeit, die der Prozessor mit der Ausführung von nicht im Leerlauf befindlichen Threads verbringt. SQL Server Die Instanz wird auf allen CPUs ausgeführt. Der Wert repräsentiert SQL ServerDie Prozessorauslastung von , nicht die gesamte CPU-Auslastung des Servers.
Wenn die Prozessorauslastung dauerhaft bei oder nahe 100 % liegt, ist Ihr Server CPU-limitiert. Dies kann auf ineffiziente Abfragen, fehlende Indizes oder unzureichende Hardwarekapazität hindeuten. Im Bereich „Letzte ressourcenintensive Abfragen“ können Sie die Abfragen identifizieren, die die meiste CPU-Leistung verbrauchen.ost ZENTRALPROZESSOR.
3.1.2 Warteaufgaben
Diese Kennzahl zeigt die Anzahl der Aufgaben an, die auf die Freigabe von Ressourcen warten, bevor sie ausgeführt werden können. Aufgaben können auf CPU-, E/A-, Speicher- oder Sperrressourcen warten.
Eine konstant hohe Anzahl wartender Aufgaben deutet auf Ressourcenkonflikte hin. Der Bereich „Ressourcenwartezeiten“ liefert detailliertere Informationen darüber, welche Ressourcentypen Wartezeiten verursachen.
3.1.3 Datenbank-E/A (MB/s)
Dieses Diagramm zeigt die Datenübertragungsrate zwischen Arbeitsspeicher und Festplatte. Es kombiniert Lese- und Schreibvorgänge und misst diese in Megabyte pro Sekunde.
Spitzenwerte bei der Datenbank-E/A können auf Abfragen hinweisen, die große Tabellenscans durchführen, auf übermäßige Protokollierungsaktivitäten oder auf Checkpoint-Operationen. Der Bereich „Datendatei-E/A“ zeigt die E/A-Aktivität nach Datenbank und Datei aufschlüsselt an.
3.1.4 Stapelverarbeitungsanfragen/Sek.
Diese Kennzahl stellt die Anzahl der SQL Server Die Anzahl der von der Instanz pro Sekunde empfangenen Batches. Ein Batch kann eine einzelne Anweisung oder mehrere gemeinsam übermittelte Anweisungen enthalten.
Dieser Wert gibt Ihnen einen Überblick über die allgemeine Serverauslastung. Plötzliche Einbrüche bei Batch-Anfragen während der normalen Geschäftszeiten können auf Verbindungsprobleme der Anwendung oder auf Probleme für die Benutzer hinweisen.
3.1.5 Einstellen von Aktualisierungsintervallen
Sie können anpassen, wie häufig der Aktivitätsmonitor seine Daten aktualisiert:
- Klicken Sie mit der rechten Maustaste an eine beliebige Stelle im Übersichtsfenster.
- Wählen Sie Aktualisierungsintervall.
- Wählen Sie ein Intervall aus den vordefinierten Werten: 1 Sekunde, 5 Sekunden, 10 Sekunden (Standard), 30 Sekunden, 1 Minute oder 1 Stunde.
Aktualisierungsintervalle unter 10 Sekunden erhöhen den Überwachungsaufwand auf Ihrem Server. Bei stark ausgelasteten Produktionssystemen empfiehlt es sich, Intervalle von 30 Sekunden oder länger zu verwenden, um die Auswirkungen zu minimieren.
3.2 Prozessbereich
Im Bereich „Prozesse“ werden Informationen über aktuell laufende Sitzungen auf Ihrem Computer angezeigt. SQL Server Beispielsweise ist dieser Bereich unerlässlich, um festzustellen, wer was tut und um blockierende Probleme zu erkennen.
3.2.1 Prozessinformationen verstehen
Jede Zeile im Bereich „Prozesse“ repräsentiert eine aktive Sitzung auf dem Server. Der Bereich zeigt Sitzungen aller Datenbanken und aller Benutzer an und bietet Ihnen so einen umfassenden Überblick über die Serveraktivität.
Die angezeigten Informationen umfassen den Anmeldenamen, den Anwendungsnamen, hostName, aufgerufene Datenbank und aktueller Befehl. Dies hilft Ihnen, Datenbankaktivitäten bestimmten Benutzern oder Anwendungen zuzuordnen.
3.2.2 Erläuterung der wichtigsten Spalten
Das Verständnis der wichtigsten Spalten hilft Ihnen, Prozessinformationen effektiv zu interpretieren:
- Session-ID: Eine eindeutige Kennung für jede Verbindung. Systemprozesse verwenden negative Sitzungs-IDs.
- Benutzerprozess: Gibt an, ob es sich um eine Benutzersitzung (Ja) oder einen Systemprozess (Nein) handelt.
- Anmeldung: Die SQL Server Anmelde- oder Windows-Konto, das mit der Sitzung verknüpft ist.
- Datenbank: Der aktuelle Datenbankkontext für die Sitzung.
- Aufgabenstatus: Zeigt den aktuellen Status der Sitzung an (LÄUFT, ANGEHALTEN, RUHT, etc.).
- Befehl: Die Art des ausgeführten Befehls (SELECT, INSERT, UPDATE usw.).
- Anwendung: Der Name der Anwendung, die die Verbindung hergestellt hat.
- Wartezeit: Wie lange (in Millisekunden) die Sitzung auf Ressourcen wartet.
- Wartezeittyp: Der spezifische Ressourcentyp, auf den die Sitzung wartet.
- CPU-Zeit: Die gesamte CPU-Zeit, die diese Sitzung seit Verbindungsaufbau verbraucht hat.
- Speichernutzung: Aktuell für die Sitzung reservierter Speicherplatz (in KB).
3.2.3 Filter- und Sortierprozesse
Der Bereich „Prozesse“ bietet leistungsstarke Filterfunktionen, mit denen Sie sich auf relevante Sitzungen konzentrieren können:
- Klicken Sie auf den Dropdown-Pfeil in einer beliebigen Spaltenüberschrift.
- Der Filter zeigt die verfügbaren Werte für diese Spalte an, einschließlich Alle, Rohlinge und Nichtleere.
- Wählen Sie bestimmte Werte aus, um die Anzeige auf diese Sitzungen zu filtern.
Sie können beispielsweise filtern Aufgabenstatus nur laufende Sitzungen anzeigen oder filtern Datenbank um die Aktivitäten in einer bestimmten Datenbank anzuzeigen.
Sie können die Spalten auch sortieren, indem Sie auf die jeweilige Spaltenüberschrift klicken. Ein Klick sortiert die Spalten aufsteigend, zwei Klicks absteigend.
3.2.4 Blockierung und blockierte Sitzungen erkennen
Der Bereich „Prozesse“ hilft Ihnen, blockierende Szenarien zu identifizieren, in denen eine Sitzung andere Sitzungen am Fortfahren hindert:
- Blockiert von: Zeigt die Sitzungs-ID der Sitzung an, die diese Sitzung blockiert. Wenn diese Spalte einen Wert enthält, wartet die Sitzung auf eine Sperre, die von einer anderen Sitzung gehalten wird.
- Kopfblocker: Zeigt „1“ an, wenn diese Sitzung andere Sitzungen blockiert, aber selbst nicht blockiert ist. Dies ist die Ursache einer Blockierungskette.
Um ein Blockierungsproblem zu untersuchen, identifizieren Sie zunächst den Hauptblocker (die Sitzung, die in der Spalte „Hauptblocker“ mit „1“ gekennzeichnet ist), prüfen Sie dann, was er tut, und entscheiden Sie, ob er abgeschlossen werden darf oder abgebrochen werden soll.
3.2.5 Prozessaktionen (Beenden, Details, Nachverfolgen)
Der Aktivitätsmonitor ermöglicht es Ihnen, Aktionen für einzelne Sitzungen durchzuführen:
- Klicken Sie mit der rechten Maustaste auf eine beliebige Sitzung im Bereich „Prozesse“.
- Sie sehen mehrere Optionen:
- Details: Zeigt den letzten Befehl an, der in dieser Sitzung ausgeführt wurde.
- Prozess beenden: Beendet die Sitzung (mit Vorsicht verwenden).
- Trace-Prozess in SQL Server Profiler: Startet SQL Server Profiler und filtert automatisch, um nur Aktivitäten aus dieser Sitzung anzuzeigen.
Die Option „Details“ zeigt Ihnen den Befehlstext an, aber beachten Sie, dass dies die letzte Der Befehl wurde ausgeführt – er wird möglicherweise nicht mehr ausgeführt. Die Trace-Option ist besonders nützlich, wenn Sie die vollständige Abfolge der von einer Sitzung ausgeführten Befehle einsehen möchten.
3.3 Ressourcenwartebereich
Der Bereich „Ressourcenwartezeiten“ fasst die Wartezeitstatistiken zusammen und zeigt an, auf welche Ressourcentypen die Sitzungen warten.ost häufig. Diese Informationen sind entscheidend für die Diagnose von Leistungsengpässen.
3.3.1 Wartezeitstatistiken verstehen
Wenn die Funktion SQL Server Kann eine Ressourcenanforderung (z. B. eine Sperre, CPU-Zeit oder Arbeitsspeicher) nicht sofort erfüllt werden, wechselt der anfordernde Prozess in den Wartezustand. Die Wartestatistik erfasst diese Wartezeiten und hilft Ihnen zu verstehen, wo der Server Zeit mit Warten statt mit Arbeiten verbringt.
Der Bereich „Ressourcenwartezeiten“ sammelt Daten aus dynamischen Systemverwaltungssichten wie sys.dm_os_wait_stats und sys.dm_exec_requests. Bei jedem Aktualisierungsintervall berechnet er die Differenz zwischen dem aktuellen und dem vorherigen Snapshot und zeigt Ihnen die Akkumulationsrate für jeden Wartetyp an.
3.3.2 Wartekategorien
Der Aktivitätsmonitor gruppiert Hunderte von einzelnen Wartezeitarten in übergeordnete Kategorien, um die Interpretation zu vereinfachen:
- ZENTRALPROZESSOR: Prozesse, die darauf warten, dass CPU-Zeit verfügbar wird.
- Pufferverriegelung: Wartet auf kurzfristige Synchronisierungsobjekte, die den Zugriff auf Datenseiten im Speicher schützen. Diese Kategorie umfasst Seitensperrwartevorgänge (PAGELATCH_*).
- Sperren: Wartezeiten, die dadurch entstehen, dass Sitzungen Sperren halten, die andere Sitzungen benötigen.
- Erinnerung: Wartet auf Speicherzuweisungen, die für Operationen wie Sortieren und Hashen benötigt werden.
- Netzwerk-E/A: Wartet auf das Senden oder Empfangen von Daten von Clients.
- SQL CLR: Wartezeiten im Zusammenhang mit der Ausführung der Common Language Runtime.
Diese Gruppierung vereinfacht zwar die Darstellung, verschleiert aber auch wichtige Details. Beispielsweise könnte „Buffer Latch“ die Wartezeiten PAGELATCH_SH, PAGELATCH_UP und PAGELATCH_EX zusammenfassen, die unterschiedliche Auswirkungen auf die Leistung haben.
3.3.3 Interpretation von Wartezeiten und Warteaufgaben
Im Bereich „Ressourcenwartezeiten“ werden zwei wichtige Kennzahlen für jede Wartekategorie angezeigt:
- Kumulierte Wartezeit (ms): Die während des aktuellen Aktualisierungsintervalls für diese Wartekategorie akkumulierten Millisekunden.
- Wartende Aufgaben: Die Anzahl der Aufgaben, die in dieser Kategorie aktuell auf Ressourcen warten.
Der Wert für die Wartezeit ist besonders interessant. Wenn Sie ein Aktualisierungsintervall von 10 Sekunden haben und für eine Kategorie eine Wartezeit von 20,000 ms feststellen, deutet dies auf mehrere gleichzeitige Wartezeiten hin (20,000 ms / 10,000 ms = Durchschnitt von 2 gleichzeitigen Wartezeiten während des Intervalls).
3.3.4 Identifizierung von Leistungsengpässen
Nutzen Sie den Bereich „Ressourcenwartezeiten“, um festzustellen, wo Ihr Server die meiste Zeit verbringt.ost Wartezeit:
- Erweitern Sie den Bereich „Ressourcenwartezeiten“.
- Beobachten Sie die Wartekategorien mit den längsten Wartezeiten.
- Sortieren nach Kumulierte Wartezeit um zu sehen, welche Ressourcen most eingeschränkt.
Hohe Wartezeiten beim Pufferzugriff deuten oft auf Konflikte um Datenseiten im Speicher hin, was auf E/A-Engpässe oder Konflikte mit der tempdb hindeuten kann. Hohe Wartezeiten beim Sperren weisen auf Blockierungsprobleme hin. Hohe Wartezeiten beim Speicherzugriff deuten auf unzureichende Speicherzuweisungen für Abfrageoperationen hin.
3.4 Datendatei-E/A-Bereich
Im Bereich „Datendatei-E/A“ wird die Festplattenaktivität für jede Datenbankdatei auf Ihrem Server angezeigt. Dies hilft Ihnen, E/A-Engpässe zu identifizieren und die Festplattenauslastungsmuster zu verstehen.
3.4.1 Verständnis von I/O-Metriken
Im Bereich „Datendatei-E/A“ werden verschiedene Metriken für jede Datenbankdatei angezeigt:
- Datenbank: Der Name der Datenbank.
- Dateityp: Entweder Daten (einschließlich Tabellen und Indizes) oder Protokoll (Transaktionsprotokoll).
- Logischer Name: Der logische Dateiname, wie definiert in SQL Server.
- MB/Sek. Lesegeschwindigkeit: Die Geschwindigkeit, mit der Daten aus dieser Datei gelesen werden.
- MB/Sek. geschrieben: Die Geschwindigkeit, mit der Daten in diese Datei geschrieben werden.
- Reaktionszeit (ms): Durchschnittliche Antwortzeit für E/A-Operationen an dieser Datei.
Diese Metriken werden im gleichen Intervall wie der Übersichtsbereich aktualisiert und bieten Ihnen somit Echtzeit-Einblicke in die Festplattenaktivität.
3.4.2 Identifizierung von E/A-Engpässen
Achten Sie auf diese Muster, die auf Probleme mit der E/A-Leistung hinweisen:
- Hohe Reaktionszeit: Antwortzeiten, die konstant über 15–20 ms liegen, deuten auf langsame Festplattensubsysteme hin. Antwortzeiten über 50 ms weisen auf gravierende E/A-Engpässe hin.
- Unausgeglichene Last: Wenn eine Datendatei deutlich höhere E/A-Raten aufweist als andere Dateien in derselben Datenbank, kann es sinnvoll sein, zusätzliche Dateien hinzuzufügen, um die Last zu verteilen.
- Übermäßige Tempdb-Aktivität: Hohe E/A-Raten bei tempdb-Dateien deuten oft darauf hin, dass Abfragen große Zwischenergebnisse erzeugen oder ineffiziente Ausführungspläne verwenden.
3.4.3 Analyse der Datenbankdatei
Im Bereich „Datendatei-E/A“ können Sie nachvollziehen, wie Ihre Datenbanken Festplattenressourcen nutzen:
- Erweitern Sie den Bereich „Datendatei-E/A“.
- Sortieren nach MB/s Lesen or MB/Sek. geschrieben um das m zu identifizierenost Aktive Dateien.
- Notieren Sie sich alle Dateien mit anhaltend hoher Aktivität oder langen Antwortzeiten.
- Vergleichen Sie diese Informationen mit dem Bereich „Letzte ressourcenintensive Abfragen“, um festzustellen, welche Abfragen die E/A-Last verursachen.
3.5 Bereich „Letzte teure Abfragen“
Der Bereich „Letzte teure Abfragen“ ist oft der wichtigste.ost Ein wertvolles Fenster zur Fehlerbehebung bei Anwendungsleistungsproblemen. Es zeigt Abfragen an, die erhebliche Serverressourcen beanspruchen, und hilft Ihnen so, Optimierungspotenziale zu identifizieren.
3.5.1 Abfragemetriken verstehen
Der Aktivitätsmonitor zeigt für jede ressourcenintensive Abfrage mehrere Kennzahlen an:
- Ausführungen/Minute: Wie oft die Abfrage in der letzten Minute ausgeführt wurde.
- CPU (ms/Sek.): Die von dieser Abfrage verbrauchte CPU-Zeit pro Sekunde.
- Physikalische Messwerte/Sek.: Anzahl der physischen Festplattenlesevorgänge pro Sekunde für diese Abfrage.
- Logische Schreibvorgänge/Sek.: Anzahl der logischen Schreibvorgänge (in den Puffer-Cache) pro Sekunde.
- Logische Lesevorgänge/Sek.: Anzahl logischer Lesevorgänge (aus dem Puffer-Cache) pro Sekunde.
- Durchschnittliche Dauer (ms): Durchschnittliche Ausführungszeit für diese Abfrage.
- Plananzahl: Anzahl der im Cache befindlichen Ausführungspläne für diese Abfrage.
Diese Kennzahlen helfen Ihnen nicht nur zu verstehen, welche Abfragen teuer sind, sondern warum Sie sind teuer und wie oft sie laufen.
3.5.2 Sortieroptionen
Sie können den Bereich „Letzte teure Abfragen“ nach verschiedenen Kriterien sortieren, um unterschiedliche Problemtypen zu finden:
- Klicken Sie auf eine beliebige Spaltenüberschrift, um nach diesem Kriterium zu sortieren.
- Gängige Sortierstrategien sind:
- Nach CPU sortieren: Finde Abfragen, die die m verbrauchenost Prozessorzeit.
- Sortieren nach Ausführungen/Minute: Identifizieren Sie Abfragen, die übermäßig häufig ausgeführt werden.
- Sortieren nach physischen Lesevorgängen: Finde die Abfragen, die das Problem verursachen.ost Festplatten-E/A.
- Sortieren nach durchschnittlicher Dauer: Langlaufende Abfragen aufspüren.
Bei der Fehlersuche in Performance-Problemen empfiehlt es sich, nach mehreren Spalten zu sortieren, um verschiedene Perspektiven zu erhalten. Eine Abfrage mit moderater CPU-Auslastung, aber extrem hoher Ausführungsrate pro Minute könnte die eigentliche Ursache des Problems sein.
3.5.3 Abfragetext anzeigen
Um die eigentliche SQL-Anweisung hinter einer aufwändigen Abfrage anzuzeigen:
- Klicken Sie mit der rechten Maustaste auf die Abfragezeile im Bereich „Letzte teure Abfragen“.
- Wählen Sie Abfragetext bearbeiten.
- Es öffnet sich ein neues Abfragefenster, in dem die vollständige SQL-Anweisung angezeigt wird.
Dies ermöglicht es Ihnen, die Abfragelogik zu untersuchen und potenzielle Optimierungsmöglichkeiten zu identifizieren. Anschließend können Sie den Abfragetext kopieren, um geänderte Versionen zu testen.
3.5.4 Analyse von Ausführungsplänen
Ausführungspläne zeigen Ihnen, wie SQL Server führt eine Abfrage aus und deckt dabei Ineffizienzen wie fehlende Indizes oder ungeeignete Join-Typen auf:
- Klicken Sie mit der rechten Maustaste auf die Abfragezeile im Bereich „Letzte teure Abfragen“.
- Wählen Sie Ausführungsplan anzeigen.
- SQL Server Management Studio zeigt eine grafische Darstellung der Ausführung der Abfrage.
Suchen Sie nach Operationen, die einen großen Anteil der Abfragekapazität beanspruchen.ostWarnungen über fehlende Statistiken oder Indizes sowie unerwartete Tabellenscans weisen häufig darauf hin, wo Optimierungsbemühungen ansetzen sollten.
3.5.5 Identifizierung problematischer Anfragen
Achten Sie im Bereich „Letzte teure Abfragen“ auf folgende Muster:
- Übermäßige Hinrichtungen: Eine Abfrage, die tausendfach pro Minute ausgeführt wird, könnte auf ein N+1-Abfrageproblem hinweisen, bei dem der Anwendungscode die Datenbank innerhalb einer Schleife aufruft.
- Hohe physische Lesbarkeit: Abfragen mit hohen physischen Leseraten greifen häufig auf die Festplatte zu, was auf fehlende Indizes oder schlecht geschriebene Abfragen hindeutet.
- Hohe CPU-Auslastung bei kurzer Laufzeit: Viele schnelle Abfragen, die insgesamt viel CPU-Leistung verbrauchen, können die Serverleistung genauso stark beeinträchtigen wie wenige langsame Abfragen.
- Mehrere Tarife zählen: Bei Abfragen mit vielen Ausführungsplänen kann es zu Problemen beim Parameter-Sniffing oder bei nicht parametrisierten Abfragen kommen, die zu einer Überlastung des Plan-Caches führen.
4. Verwendung des Aktivitätsmonitors zur Fehlerbehebung bei Leistungsproblemen
Der Aktivitätsmonitor spielt seine Stärken besonders dann aus, wenn er systematisch zur Diagnose und Behebung von Leistungsproblemen eingesetzt wird. Dieser Abschnitt behandelt gängige Szenarien zur Fehlerbehebung und deren Vorgehensweise.
4.1 Diagnose übermäßiger Abfrageausführungen
Einer von ihnenost Ein häufiges Performanceproblem besteht darin, dass Abfragen viel häufiger ausgeführt werden als nötig, was oft auf Probleme im Anwendungsdesign zurückzuführen ist.
4.1.1 Wiederholte Anfragen identifizieren
Um Abfragen zu erkennen, die zu häufig ausgeführt werden:
- Öffnen Sie die Aktivitätsanzeige und erweitern Sie die Aktuelle teure Anfragen Feld.
- Sortieren nach Ausführungen/Minute (Hinrichtungen pro Minute).
- Suchen Sie nach Abfragen ganz oben, deren Ausführungsanzahl unangemessen hoch erscheint.
- Klicken Sie mit der rechten Maustaste auf die verdächtige Abfrage und wählen Sie aus Abfragetext bearbeiten um die SQL-Anweisung zu untersuchen.
Wenn Sie beispielsweise sehen, dass eine einfache SELECT-Anweisung 37,000 Mal pro Minute ausgeführt wird, sollten Sie hinterfragen, ob die Anwendung diese Abfrage wirklich so häufig aufrufen muss.ost Anfragen, die mehr als einige tausend Mal pro Minute ausgeführt werden, erfordern eine Untersuchung.
4.1.2 Ursachenanalyse
Übermäßige Abfrageausführungen resultieren typischerweise aus folgenden Problemen:
- N+1-Abfrageproblem: Der Anwendungscode ruft eine Liste von Elementen ab und führt anschließend für jedes Element eine separate Abfrage aus, um zugehörige Daten zu erhalten. Dadurch entstehen N zusätzliche Abfragen, wobei N die Anzahl der Elemente ist.
- Fehlende Zwischenspeicherung: Die Anwendung fragt die Datenbank nach Daten ab, die rarÄnderungen werden ely vorgenommen, anstatt sie im Anwendungsspeicher zwischenzuspeichern.
- Abfrageschleifen: Der Code fragt die Datenbank wiederholt ab, um auf Zustandsänderungen zu prüfen, anstatt Änderungsbenachrichtigungen oder Nachrichtenwarteschlangen zu verwenden.
- ORM-Ineffizienz: Entity Framework und ähnliche Tools erzeugen manchmal ineffiziente Abfragemuster, wenn Entwickler nicht verstehen, wie ihr Code in SQL übersetzt wird.
Um die Ursache zu ermitteln, verfolgen Sie die Abfrage bis zum Anwendungscode zurück. Beachten Sie die Anwendung , einzuloggen oder Spalten im Bereich „Prozesse“, wenn die Abfrage ausgeführt wird. Sie können auch mit der rechten Maustaste auf den Prozess klicken und auswählen Trace-Prozess in SQL Server Profiler um das Aufrufmuster zu erkennen.
4.1.3 Lösungen und Best Practices
Sobald Sie übermäßige Abfrageausführungen identifiziert haben, sollten Sie folgende Lösungen in Betracht ziehen:
- Stapelverarbeitung: Ändern Sie den Anwendungscode so, dass mehrere Elemente in einer einzigen Abfrage mithilfe von Joins oder IN-Klauseln abgerufen werden, anstatt separate Abfragen in einer Schleife auszuführen.
- Ergebnis-Caching: Im Anwendungsspeicher werden häufig abgerufene, sich selten ändernde Daten im Cache gespeichert, die über angemessene Ablaufzeiten verfügen.
- Eifrig geladen: Konfigurieren Sie ORMs so, dass sie Eager-Loading-Strategien verwenden, die zusammengehörige Daten in weniger, effizienteren Abfragen abrufen.
- Abfrageparametrisierung: Stellen Sie sicher, dass Abfragen Parameter anstelle von verketteten Werten verwenden. Dies verbessert die Wiederverwendung des Plancaches und reduziert den Kompilierungsaufwand.
4.2 Untersuchung von Blockierungsproblemen
Eine Blockierung tritt auf, wenn eine Sitzung Sperren hält, die andere Sitzungen am Fortfahren hindern. Dies äußert sich in langsamen Anwendungsreaktionszeiten und frustrierten Benutzern.
4.2.1 Identifizierung von Blockierungsketten
Zum Erkennen und Analysieren von Blockierungen:
- Öffnen Sie die Aktivitätsanzeige und erweitern Sie die Prozesse Feld.
- Suchen Sie nach Sitzungen mit Werten in der Blockiert von Spalte – diese warten auf Sperren, die von anderen Sitzungen gehalten werden.
- Finde Sitzungen mit '1' in der Kopfblocker Spalte – dies ist die Hauptursache für blockierende Ketten.
- Beachten Sie das Session ID des Kopfblockers.
- Klicken Sie mit der rechten Maustaste auf die Head-Blocker-Sitzung und wählen Sie aus Details um zu sehen, welcher Befehl ausgeführt wird.
Das Verständnis der Blockierungskette ist entscheidend. Der Hauptblocker ist die Sitzung, die Sie untersuchen müssen, nicht die nachfolgenden blockierten Sitzungen.
4.2.2 Schlossarten verstehen
Die Wartetyp Die Spalte im Bereich „Prozesse“ gibt an, auf welche Art von Sperre blockierte Sitzungen warten:
- LCK_M_X: Exklusive Sperrwartezeit, typischerweise verursacht durch UPDATE-, DELETE- oder INSERT-Operationen.
- LCK_M_S: Gemeinsame Sperren werden durch Warten auf die Freigabe exklusiver Sperren verursacht.
- LCK_M_U: Update-Sperrwarteschlange, ein Zwischensperrtyp, der während Aktualisierungen verwendet wird.
- LCK_M_IX: Warten auf eine exklusive Sperre, was auf einen Sperrkonflikt auf Seiten- oder Zeilenebene hinweist.
Die Warten Sie auf die Ressource Die Spalte zeigt an, welches Datenbankobjekt gesperrt ist, und hilft Ihnen so zu verstehen, welche Tabelle oder welcher Index von der Sperrung betroffen ist.
4.2.3 Behebung von Blockierungsproblemen
Sobald Sie die blockierende Sitzung und deren Funktion identifiziert haben, stehen Ihnen mehrere Optionen zur Verfügung:
- Auf Abschluss warten: Wenn der Head-Blocker eine legitime Abfrage ausführt, die bald abgeschlossen sein wird, ist es möglicherweise am besten, sie auf natürliche Weise beenden zu lassen.
- Sitzung beenden: Wenn der Head-Blocker hängt oder eine Abfrage ausführt, die abgebrochen werden sollte:
- Klicken Sie mit der rechten Maustaste auf die Sitzung im Bereich „Prozesse“.
- Wählen Sie Kill Process.
- Bestätigen Sie die Aktion im Dialogfeld.
- Abfragen optimieren: Wenn Blockierungen bei denselben Abfragen wiederholt auftreten, optimieren Sie diese, um deren Sperrdauer zu verkürzen.
- Isolationsstufen anpassen: Erwägen Sie die Verwendung von READ COMMITTED SNAPSHOT ISOLATION, um Blockierungen bei leseintensiven Arbeitslasten zu reduzieren.
- Index-Tuning: Fügen Sie Indizes hinzu, um Abfragen zu beschleunigen und die Dauer der Sperrvorgänge zu verkürzen.
4.3 Analyse hoher CPU-Auslastung
Wenn im Übersichtsfenster eine Prozessorzeit von konstant 100 % oder nahezu 100 % angezeigt wird, müssen Sie die dafür verantwortlichen Abfragen identifizieren und prüfen, ob diese optimiert werden können.
4.3.1 Identifizieren von CPU-intensiven Abfragen
So finden Sie Abfragen, die übermäßig viel CPU-Leistung verbrauchen:
- Öffnen Sie den Microsoft Store auf Ihrem Windows-PC Aktuelle teure Anfragen Feld.
- Sortieren nach CPU (ms/Sek.) um Abfragen mit dem m anzuzeigenost CPU-Zeit.
- Untersuchen Sie die Top-Suchanfragen in der Liste.
- Klicken Sie mit der rechten Maustaste auf die CPU-intensiven Abfragen und wählen Sie aus Abfragetext bearbeiten um die SQL-Anweisung anzuzeigen.
- Wählen Sie Ausführungsplan anzeigen um zu verstehen, wie die Abfrage ausgeführt wird.
Achten Sie nicht nur auf die CPU-Auslastung einzelner Abfragen, sondern auch auf die Ausführungen/Minute Spalte. Eine Abfrage, die pro Ausführung mäßig viel CPU-Leistung benötigt, aber tausendfach pro Minute ausgeführt wird, kann den größten CPU-Verbraucher darstellen.
4.3.2 Techniken zur Abfrageoptimierung
Gängige Ansätze zur Reduzierung der CPU-Auslastung sind:
- Fehlende Indizes hinzufügen: Indexzugriffe benötigen deutlich weniger CPU-Leistung als Tabellenscans. Achten Sie in den Ausführungsplänen auf fehlende Indexempfehlungen.
- Ineffiziente Abfragen umschreiben: Ersetzen Sie Cursor durch mengenbasierte Operationen, eliminieren Sie unnötige Funktionen in WHERE-Klauseln und entfernen Sie redundante Joins.
- Statistik aktualisieren: Veraltete Statistiken verursachen SQL Server Um ineffiziente Ausführungspläne auszuwählen, führen Sie UPDATE STATISTICS für die betroffenen Tabellen aus.
- Datenvolumen reduzieren: Fügen Sie WHERE-Klauseln hinzu, um Daten früher zu filtern, verwenden Sie TOP oder OFFSET/FETCH für die Paginierung und vermeiden Sie SELECT *.
- Parameter-Sniffing beheben: Verwenden Sie OPTION (RECOMPILE), Abfragehinweise oder Planleitfäden, wenn das Parameter-Sniffing Probleme verursacht.
4.4 Untersuchung von Gedächtnisproblemen
Speichermangel kann dazu führen, dass Abfragen auf die Festplatte ausgelagert werden, was die Leistung erheblich beeinträchtigt. Die Aktivitätsanzeige hilft Ihnen, speicherintensive Vorgänge zu identifizieren.
4.4.1 Speichermetriken verstehen
Die Speichernutzung Die Spalte im Bereich „Prozesse“ zeigt den jeder Sitzung zugewiesenen Speicher in Kilobyte an. Eine hohe Speicherauslastung einer einzelnen Sitzung deutet oft auf Folgendes hin:
- Große Sortier- oder Hash-Operationen, die nicht in den ursprünglich zugewiesenen Speicher passten.
- Abfragen, die riesige Ergebnismengen abrufen
- Übermäßiger Parallelismus erzeugt viele Kopien von Ausführungsplanoperatoren
- Speicherlecks in CLR-gespeicherten Prozeduren oder Funktionen
Im Bereich „Ressourcenwartezeiten“ werden möglicherweise Speicherwartezeiten angezeigt, wenn Abfragen nicht genügend Speicherzuweisungen erhalten und warten müssen, bis Speicher verfügbar wird.
4.4.2 Identifizieren speicherintensiver Abfragen
Um Abfragen zu finden, die Speicherdruck verursachen:
- Bei Prozesse Bereich, sortieren nach Speichernutzung um zu sehen, welche Sitzungen die m verbrauchenost Speicher.
- Klicken Sie mit der rechten Maustaste auf Sitzungen mit hoher Speicherauslastung und wählen Sie aus Details um ihre Anfragen einzusehen.
- Bei Aktuelle teure Anfragen Bereich, suchen Sie nach Abfragen mit hohem Logische Lesevorgänge or Logische Schreibvorgängeda diese häufig mit der Speichernutzung korrelieren.
- Untersuchen Sie die Ausführungspläne für die Operatoren Sort und Hash Match, die Speicherzuweisungen verwenden.
Abfragen, die „Memory Grant“-Warnungen in Ausführungsplänen oder Überlaufwarnungen anzeigen, deuten auf Probleme mit dem Speicherdruck hin.
4.5 Erkennen von Anwendungsleistungsproblemen
Wenn Benutzer langsame Reaktionszeiten der Anwendung melden, hilft Ihnen der Aktivitätsmonitor dabei festzustellen, ob die Datenbank der Flaschenhals ist.
4.5.1 Korrelation des Aktivitätsmonitors mit Anwendungsproblemen
Zur Untersuchung der Anwendungslangsamheit:
- Notieren Sie den genauen Zeitpunkt, zu dem Benutzer Probleme melden, und die betroffenen Anwendungen.
- Öffnen Sie die Aktivitätsanzeige und überprüfen Sie die Überblick Bereich für Ressourcenspitzen zu diesem Zeitpunkt.
- Bei Prozesse Bereich, Filter nach Anwendung Es werden nur Verbindungen der betroffenen Anwendung angezeigt.
- Suchen Sie nach hohen Wartezeit Werte, die auf Datenbankverzögerungen hinweisen.
- Prüfen Sie die Aktuelle teure Anfragen Bereich für Abfragen aus dieser Anwendung, die erhebliche Ressourcen beanspruchen.
Wenn die Datenbank keine ungewöhnliche Aktivität anzeigt, die Benutzer aber eine Verlangsamung feststellen, liegt das Problem wahrscheinlich im Anwendungscode, in der Netzwerklatenz oder in der clientseitigen Leistung.
4.5.2 Ineffiziente Anwendungsmuster erkennen
Der Aktivitätsmonitor deckt mehrere Anti-Patterns im Anwendungsdesign auf:
- Chatty-Anwendungen: Viele kleine Anfragen anstelle weniger, dafür effizienterer Anfragen. Erkennbar an einer hohen Anzahl von Verbindungen und zahlreichen einfachen Anfragen in den kürzlich aufgetretenen ressourcenintensiven Anfragen.
- N+1 Anfragen: Eine Abfrage, gefolgt von N weiteren Abfragen für verwandte Daten. Dies erscheint als einfache Abfrage mit extrem hoher Ausführungsrate pro Minute.
- Große Ergebnismengen: Anwendungen, die weit mehr Daten abrufen als nötig. Achten Sie auf hohe Werte. Logische Lesevorgänge kombiniert mit einfachen SELECT * Abfragen.
- Fehlende Auszeiten: Anwendungen, die keine Befehlstimeouts festlegen, können Verbindungen unbegrenzt offen halten, was im Bereich „Prozesse“ als langlaufende Sitzungen sichtbar wird.
5. Alternative Methoden: Abrufen von Aktivitätsmonitordaten über T-SQL
Der Activity Monitor bietet zwar eine komfortable grafische Benutzeroberfläche, manchmal ist es jedoch erforderlich, gleichwertige Informationen programmatisch abzurufen oder benutzerdefinierte Überwachungslösungen zu erstellen.
5.1 Verwendung dynamischer Verwaltungssichten (DMVs)
SQL Server Die Aktivitätsinformationen werden über dynamische Verwaltungsansichten bereitgestellt, die vom Aktivitätsmonitor im Hintergrund abgefragt werden.
5.1.1 Wichtige DMVs für die Aktivitätsüberwachung
Die most Wichtige DMVs zur Nachbildung der Funktionalität des Aktivitätsmonitors sind:
- sys.dm_exec_requests: Zeigt aktuell ausgeführte Anfragen mit Informationen zu CPU, E/A und Wartezeiten an.
- sys.dm_exec_sessions: Enthält Informationen auf Sitzungsebene wie Anmeldename, host Name und Programmname.
- sys.dm_os_wait_stats: Liefert kumulative Wartezeitstatistiken für die gesamte Instanz.
- sys.dm_exec_query_stats: Enthält aggregierte Leistungsstatistiken für zwischengespeicherte Abfragen.
- sys.dm_io_virtual_file_stats: Gibt E/A-Statistiken für Daten- und Protokolldateien zurück.
- sys.dm_exec_sql_text: Ruft den SQL-Text für ein gegebenes sql_handle oder plan_handle ab.
- sys.dm_exec_query_plan: Gibt den Ausführungsplan für eine zwischengespeicherte Abfrage zurück.
5.1.2 Beispielabfragen für Prozessinformationen
Um die Funktionalität des Prozessbereichs nachzubilden, können Sie folgende Abfragen ausführen:
SELECT
s.session_id AS [Session ID],
CASE WHEN s.is_user_process = 1 THEN 'Yes' ELSE 'No' END AS [User Process],
s.login_name AS [Login],
ISNULL(CAST(r.blocking_session_id AS VARCHAR), '') AS [Blocked By],
CASE
WHEN r2.session_id IS NOT NULL
AND (r.blocking_session_id = 0 OR r.session_id IS NULL)
THEN '1'
ELSE ''
END AS [Head Blocker],
ISNULL(DB_NAME(r.database_id), '') AS [Database],
ISNULL(t.task_state, '') AS [Task State],
ISNULL(r.command, '') AS [Command],
r.cpu_time AS [CPU Time],
r.total_elapsed_time AS [Elapsed Time],
r.wait_time AS [Wait Time],
r.wait_type AS [Wait Type],
s.memory_usage * 8 AS [Memory Use (KB)],
s.host_name AS [Host Name],
s.program_name AS [Application]
FROM sys.dm_exec_sessions s
LEFT JOIN sys.dm_exec_requests r ON s.session_id = r.session_id
LEFT JOIN sys.dm_exec_requests r2 ON r.session_id = r2.blocking_session_id
LEFT JOIN sys.dm_os_tasks t ON r.session_id = t.session_id
WHERE s.session_id != @@SPID
ORDER BY s.session_id;
5.1.3 Beispielabfragen für Wartezeitstatistiken
Um Wartezeitstatistiken ähnlich dem Bereich „Ressourcenwartezeiten“ anzuzeigen:
SELECT TOP 10
wait_type AS [Wait Type],
wait_time_ms / 1000.0 AS [Wait Time (sec)],
waiting_tasks_count AS [Waiting Tasks],
wait_time_ms / NULLIF(waiting_tasks_count, 0) AS [Avg Wait Time (ms)]
FROM sys.dm_os_wait_stats
WHERE wait_type NOT LIKE '%SLEEP%'
AND wait_type NOT LIKE '%IDLE%'
AND wait_type NOT LIKE '%QUEUE%'
ORDER BY wait_time_ms DESC;
5.2 Verwendung von sp_WhoIsActive
sp_WhoIsActive ist eine leistungsstarke, von der Community entwickelte gespeicherte Prozedur, die detailliertere Informationen als der Aktivitätsmonitor in einem einzigen Ergebnissatz liefert.
5.2.1 Installation von sp_WhoIsActive
So installieren Sie sp_WhoIsActive:
- Laden Sie die neueste Version von herunter
http://whoisactive.com. - Der Download ist ein SQL-Skript, das die Prozedurdefinition enthält.
- Öffnen Sie das Skript in SQL Server Management-Studio.
- Stellen Sie eine Verbindung zu Ihrem her SQL Server Beispiel.
- Führen Sie das Skript aus, um die Prozedur in der Masterdatenbank zu erstellen.
- Erteilen Sie den entsprechenden Benutzern Ausführungsberechtigungen.
Da sp_WhoIsActive im Master-Branch installiert ist, ist es von jedem Datenbankkontext aus zugänglich.
5.2.2 Grundlegende Anwendungsbeispiele
Die einfachste Art, sp_WhoIsActive zu verwenden, ist:
EXEC sp_WhoIsActive;
Dies liefert ein Resultset, das alle aktiven Sitzungen mit ihren Abfragen, Wartetypen, Blockierungsinformationen und Ressourcennutzung anzeigt.
Hier ein 10-Sekunden-Beispiel, das die Aktivität über diesen Zeitraum zeigt:
EXEC sp_WhoIsActive @delta_interval = 10;
Hiermit werden die Differenzen für Metriken wie CPU-Auslastung und Lesevorgänge berechnet, um zu zeigen, was während dieser 10 Sekunden passiert ist.
5.2.3 Erweiterte Parameter
sp_WhoIsActive unterstützt zahlreiche Parameter zur Anpassung:
- @Filter: Ergebnisse nach bestimmten Sitzungen, Datenbanken oder Logins filtern.
- @filter_type: Geben Sie an, auf was der Filter angewendet werden soll (Sitzung, Datenbank, Login usw.).
- @get_plans: Ausführungspläne in die Ergebnisse einbeziehen (auf 1 setzen).
- @get_locks: Detaillierte Informationen zum Schloss anzeigen (auf 1 setzen).
- @get_transaction_info: Transaktionsdetails anzeigen (auf 1 setzen).
- @sort_order: Sortieren Sie die Ergebnisse nach verschiedenen Metriken (CPU, Lesevorgänge, Dauer usw.).
- @destination_table: Die Ergebnisse werden zur späteren Nachverfolgung in eine Tabelle eingetragen.
Beispiel, das die nach CPU sortierten Pläne anzeigt:
EXEC sp_WhoIsActive
@get_plans = 1,
@sort_order = '[CPU] DESC';
5.3 Verwendung von Systemprozeduren
SQL Server umfasst traditionelle gespeicherte Prozeduren zur Überwachung der Aktivität, die jedoch weniger Informationen liefern als DMVs oder Activity Monitor.
5.3.1 sp_who und sp_who2
Die Prozedur sp_who zeigt grundlegende Sitzungsinformationen an:
EXEC sp_who;
Die Prozedur sp_who2 liefert etwas mehr Details:
EXEC sp_who2;
Beide Verfahren zeigen Sitzungs-IDs, Anmeldenamen, CPU-Zeit und Blockierungsinformationen an. Allerdings fehlen ihnen die detaillierten Informationen, die über DMVs oder den Aktivitätsmonitor verfügbar sind.ost Nützlich für schnelle Überprüfungen, wenn Sie nur minimale Informationen benötigen.
5.3.2 Weitere nützliche Systemprozeduren
Zu den zusätzlichen Systemverfahren für die Überwachung gehören:
- sp_lock: Zeigt Sperrinformationen an (veraltet; verwenden Sie stattdessen sys.dm_tran_locks).
- sp_monitor: Zeigt Statistiken über SQL Server Aktivität.
- sp_help: Zeigt Objektdefinitionen und Metadaten an.
- DBCC SQLPERF: Zeigt Statistiken zur Speicherplatznutzung im Transaktionsprotokoll und zu Wartezeiten an.
5.4 Erstellen benutzerdefinierter Überwachungsskripte
Für Umgebungen, die eine spezifische Überwachung erfordern, die über die Möglichkeiten des Activity Monitors hinausgeht, können Sie mithilfe von DMVs benutzerdefinierte Lösungen erstellen.
5.4.1 Vollständiges Skript für den Aktivitätsmonitor (äquivalent zu den vollständigen Daten)
Hier ist ein umfassendes Skript, das m repliziert.ost Funktionalität des Aktivitätsmonitors:
-- Processes Information
SELECT
s.session_id AS [Session ID],
CONVERT(CHAR(1), s.is_user_process) AS [User Process],
s.login_name AS [Login],
ISNULL(CONVERT(VARCHAR, w.blocking_session_id), '') AS [Blocked By],
CASE
WHEN r2.session_id IS NOT NULL
AND (r.blocking_session_id = 0 OR r.session_id IS NULL)
THEN '1'
ELSE ''
END AS [Head Blocker],
ISNULL(DB_NAME(r.database_id), N'') AS [Database],
ISNULL(t.task_state, N'') AS [Task State],
ISNULL(r.command, N'') AS [Command],
SUBSTRING(st.text, (r.statement_start_offset/2) + 1,
((CASE r.statement_end_offset
WHEN -1 THEN DATALENGTH(st.text)
ELSE r.statement_end_offset
END - r.statement_start_offset) / 2) + 1) AS [Statement],
st.text AS [Command Text],
r.cpu_time AS [CPU Time (ms)],
r.total_elapsed_time / 1000 AS [Elapsed Time (sec)],
r.wait_time AS [Wait Time (ms)],
r.wait_type AS [Wait Type],
r.wait_resource AS [Wait Resource],
s.memory_usage * 8 AS [Memory Use (KB)],
s.host_name AS [Host Name],
c.client_net_address AS [Net Address],
s.program_name AS [Application]
FROM sys.dm_exec_sessions s
LEFT JOIN sys.dm_exec_requests r ON s.session_id = r.session_id
LEFT JOIN sys.dm_exec_requests w ON r.session_id = w.blocking_session_id
LEFT JOIN sys.dm_exec_requests r2 ON r.session_id = r2.blocking_session_id
LEFT JOIN sys.dm_os_tasks t ON r.session_id = t.session_id
AND r.request_id = t.request_id
LEFT JOIN sys.dm_exec_connections c ON s.session_id = c.session_id
OUTER APPLY sys.dm_exec_sql_text(r.sql_handle) st
WHERE s.session_id != @@SPID
ORDER BY s.session_id;
-- Recent Expensive Queries
SELECT TOP 20
qs.execution_count /
DATEDIFF(MINUTE, qs.creation_time, GETDATE()) AS [Executions/min],
qs.total_worker_time / 1000 AS [CPU Time (ms)],
qs.total_physical_reads AS [Physical Reads],
qs.total_logical_writes AS [Logical Writes],
qs.total_logical_reads AS [Logical Reads],
qs.total_elapsed_time / qs.execution_count / 1000 AS [Avg Duration (ms)],
SUBSTRING(st.text, (qs.statement_start_offset/2) + 1,
((CASE qs.statement_end_offset
WHEN -1 THEN DATALENGTH(st.text)
ELSE qs.statement_end_offset
END - qs.statement_start_offset) / 2) + 1) AS [Query Text]
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) st
WHERE qs.execution_count > 0
ORDER BY qs.total_worker_time DESC;
5.4.2 Automatisierte Überwachung mit SQL-Agent-Aufträgen
Sie können benutzerdefinierte Überwachungsskripte planen mit SQL Server Agenten:
- Erstellen Sie eine Tabelle zum Speichern der Überwachungsergebnisse.
- Ändern Sie Ihr Überwachungsskript so, dass die Ergebnisse in diese Tabelle eingefügt werden.
- In SQL Server Management Studio erweitern SQL Server Makler im Objekt-Explorer.
- Der rechten Maustaste auf Jobs gedrückt und wählen Sie Neuer Job.
- Konfigurieren Sie den Job so, dass Ihr Überwachungsskript in regelmäßigen Abständen ausgeführt wird.
- Richten Sie Benachrichtigungen oder Berichte auf Basis der gesammelten Daten ein.
Dieser Ansatz ermöglicht die Nachverfolgung des historischen Verlaufs und die Trendanalyse, die der Aktivitätsmonitor nicht bietet.
6. Einschränkungen und Überlegungen zur Aktivitätsüberwachung
Der Aktivitätsmonitor ist zwar nützlich, aber wenn man seine Grenzen kennt, kann man ihn richtig einsetzen und ihn gegebenenfalls durch andere Tools ergänzen.
6.1 Verständnis des Overheads der Aktivitätsüberwachung
Der Aktivitätsmonitor ist nicht kostenlos – er beansprucht Serverressourcen, um Informationen zu sammeln und anzuzeigen. Wenn Sie diesen Ressourcenaufwand verstehen, können Sie ihn verantwortungsvoll einsetzen.
6.1.1 Auswirkungen auf die Serverressourcen
Der Aktivitätsmonitor führt bei jeder Aktualisierung Abfragen an die System-DMVs aus. Diese Abfragen beanspruchen CPU-Leistung, erzeugen logische Lesevorgänge und können kurzzeitig Sperren auf Systemtabellen belegen. Auf stark ausgelasteten Servern kann dieser Mehraufwand die Leistung beeinträchtigen.
Die Bereiche „Prozesse“ und „Letzte ressourcenintensive Abfragen“ sind besonders ressourcenintensiv, da sie potenziell große DMVs durchsuchen und Tabellen zwischenspeichern müssen. Auf Servern mit Tausenden von zwischengespeicherten Abfrageplänen kann das Aktualisieren der „Letzten ressourcenintensiven Abfragen“ mehrere Sekunden dauern.
In der Dokumentation von Microsoft wird darauf hingewiesen, dass Aktualisierungsintervalle unter 10 Sekunden die Serverleistung spürbar beeinträchtigen können, insbesondere auf bereits ausgelasteten Systemen.
6.1.2 Bewährte Verfahren für Aktualisierungsintervalle
Wählen Sie Aktualisierungsintervalle, die für Ihre Situation geeignet sind:
- 1-5 Sekunden: Nur zur sofortigen Fehlerbehebung bei kritischen Problemen auf Servern mit geringer Auslastung. Lassen Sie den Aktivitätsmonitor nicht in diesen Intervallen laufen.
- 10 Sekunden (Standard): Angemessen für most Fehlerbehebungsszenarien und allgemeine Überwachung.
- 30-60 Sekunden: Bessere Wahl für Produktionsserver unter hoher Last oder bei der Überwachung über längere Zeiträume.
- Nur manuelle Aktualisierung: Für Situationen, in denen Sie den aktuellen Zustand nur gelegentlich und ohne kontinuierliche Abfrage überprüfen möchten.
Schließen Sie die Aktivitätsanzeige immer, wenn Sie Ihre Untersuchung abgeschlossen haben. Lassen Sie sie nicht dauerhaft im Hintergrund laufen, insbesondere nicht mehrere Instanzen von verschiedenen Benutzern.
6.2 Probleme bei der Gruppierung von Wartetypen
Die Art und Weise, wie der Aktivitätsmonitor Wartezeiten kategorisiert, vereinfacht zwar die Ansicht, kann aber wichtige Diagnoseinformationen verschleiern.ostIC-Informationen.
6.2.1 Wie die Aktivitätsüberwachung Wartezeiten gruppiert
SQL Server Der Aktivitätsmonitor erfasst Hunderte verschiedener Wartezeiten, die jeweils auf eine bestimmte Ressource oder einen bestimmten Zustand hinweisen. Er gruppiert diese in übergeordnete Kategorien wie „Puffersperre“, „Sperre“ und „Speicher“.
Die Kategorie „Puffersperre“ umfasst beispielsweise PAGELATCH_SH, PAGELATCH_UP, PAGELATCH_EX und einige weitere spezifische Wartetypen. Obwohl sie alle mit dem Seitenzugriff zusammenhängen, haben sie unterschiedliche Ursachen und Lösungen.
Microsoft dokumentiert nicht genau, welche Wartezeiten welchen Kategorien zugeordnet sind, was es schwierig macht, zu verstehen, was man tatsächlich sieht.
6.2.2 Fehlende Wartetypen
Die Aktivitätsanzeige zeigt nicht alle Wartezeiten an.ost Insbesondere werden CXPACKET-Wartezeiten, die auf eine parallele Abfrageausführung hinweisen, häufig nicht berücksichtigt. CXPACKET-Wartezeiten sind üblich und in der Regel unproblematisch, aber ihr Vorhandensein hilft, die Eigenschaften der Arbeitslast zu verstehen.
Wenn die Aktivitätsanzeige „Puffersperre“ als oberste Wartezeit anzeigt, andere Tools aber CXPACKET als dominierend anzeigen, liegt die Diskrepanz an der Filter- und Gruppierungslogik der Aktivitätsanzeige.
6.2.3 Warum bestimmte Wartezeittypen wichtig sind
Die Kenntnis des genauen Wartezeittyps ist für die Fehlerbehebung wichtig:
- PAGELATCH_EX: Dies deutet häufig auf Konflikte zwischen tempdb und den zugehörigen Datenseiten hin. Die Lösung besteht darin, weitere tempdb-Datendateien hinzuzufügen.
- PAGELATCH_SH: Dies könnte auf häufig genutzte Seiten in Benutzertabellen hinweisen. Die Lösung besteht in der Partitionierung oder Indexreorganisation.
- PAGELATCH_UP: Häufig bei Aktualisierungen. Kann auf einen normalen Betrieb und nicht auf ein Problem hinweisen.
Die Aktivitätsüberwachung fasst all diese Vorgänge unter „Pufferverzögerung“ zusammen, was die Diagnose erschwert. Tools wie sp_WhoIsActive und DMV-Abfragen zeigen spezifische Wartezeittypen an.
6.3 Datengenauigkeit und Aktualität
Der Aktivitätsmonitor bietet eine nahezu Echtzeitansicht, wobei „nahezu“ das entscheidende Wort ist. Das Verständnis seiner Datenerfassungsmethode hilft Ihnen, die Ergebnisse richtig zu interpretieren.
6.3.1 Momentaufnahme vs. kontinuierliche Überwachung
Der Aktivitätsmonitor zeigt Momentaufnahmen an, die in jedem Aktualisierungsintervall erstellt werden. Ereignisse, die zwischen diesen Momentaufnahmen stattfinden, werden nicht erfasst. Wenn eine Abfrage beispielsweise 2 Sekunden lang läuft und Sie alle 10 Sekunden aktualisieren, wird sie je nach Zeitpunkt möglicherweise nur einmal oder gar nicht angezeigt.
Dies bedeutet, dass der Aktivitätsmonitor hervorragend darin ist, anhaltende Probleme zu erkennen (Blockierungen, die Minuten dauern, konstant hohe CPU-Auslastung), vorübergehende Probleme (kurze Deadlocks, gelegentliche Abfragespitzen) jedoch möglicherweise übersieht.
6.3.2 Aggregation und Stichprobenziehung
Der Bereich „Letzte ressourcenintensive Abfragen“ zeigt Daten an, die seit dem Speichern der Abfragepläne im Cache aggregiert wurden. Zwei identische Abfragen mit unterschiedlichen Parameterwerten werden als eine Zeile angezeigt, wenn sie denselben Plan verwenden. Diese Aggregation kann Probleme mit bestimmten Parameterkombinationen verschleiern (Parameter-Sniffing-Probleme).
Im Bereich „Ressourcenwartezeiten“ werden die Raten durch Vergleich von Snapshots berechnet. Wenn die Wartezeitstatistiken zwischen den Snapshots zurückgesetzt werden (rare aber möglich), die berechneten Raten können falsch sein.
6.4 Wann Sie den Aktivitätsmonitor NICHT verwenden sollten
Der Aktivitätsmonitor ist nicht für jedes Überwachungsszenario geeignet. Achten Sie darauf, wann alternative Tools besser geeignet sind.
6.4.1 Anforderungen an die historische Analyse
Der Aktivitätsmonitor zeigt nur aktuelle oder kürzlich erfolgte Aktivitäten an. Er speichert keine historischen Daten. Wenn Sie Trends über Tage oder Wochen analysieren, die aktuelle Leistung mit Referenzwerten vergleichen oder Berichte zu Leistungsmustern erstellen möchten, ist der Aktivitätsmonitor nicht ausreichend.
Für historische Analysen verwenden Sie SQL Serverintegriertes Leistungs-Dashboard, Erweiterte Ereignisse mit Datei tarerhält oder Überwachungslösungen von Drittanbietern.
6.4.2 Detaillierte Wartezeitstatistiken erforderlich
Für die erweiterte Optimierung benötigen Sie präzise Informationen zum Wartezeittyp. Die Gruppierungs- und Filterfunktionen des Aktivitätsmonitors reichen dafür nicht aus. Verwenden Sie stattdessen direkt DMV-Abfragen oder sp_WhoIsActive.
Für eine umfassende Analyse der Wartezeitstatistiken fragen Sie sys.dm_os_wait_stats direkt ab und filtern Sie harmlose Wartezeiten manuell heraus.
6.4.3 Überlegungen zum Produktionsserver
Auf stark ausgelasteten Produktionsservern kann der Ressourcenverbrauch des Aktivitätsmonitors problematisch sein. Mehrere Datenbankadministratoren sollten den Aktivitätsmonitor nicht gleichzeitig auf demselben Server ausführen.
Für die Produktionsüberwachung sollten Sie ressourcenschonende Alternativen wie geplante DMV-Snapshots, die in einer Überwachungsdatenbank gespeichert werden, oder Read-Only-Routing zur Überwachung sekundärer Replikate in Always On-Konfigurationen in Betracht ziehen.
7. Bewährte Vorgehensweisen für die Verwendung des Aktivitätsmonitors
Die Einhaltung bewährter Vorgehensweisen gewährleistet, dass Sie den maximalen Nutzen aus dem Aktivitätsmonitor ziehen und gleichzeitig negative Auswirkungen auf Ihre Server minimieren.
7.1 Wann sollte der Aktivitätsmonitor verwendet werden?
Der Aktivitätsmonitor ist in bestimmten Szenarien besonders effektiv. Nutzen Sie ihn, wenn seine Stärken Ihren Bedürfnissen entsprechen.
7.1.1 Echtzeit-Leistungsprobleme
Der Aktivitätsmonitor ist ideal, wenn Benutzer aktuell Probleme haben und Sie die Ursache sofort diagnostizieren müssen. Die Echtzeitansicht hilft Ihnen, den aktuellen Status zu erkennen.
Wenn Sie einen Anruf erhalten, dass „die Anwendung langsam ist“, sollten Sie als Erstes den Aktivitätsmonitor öffnen. So können Sie schnell feststellen, ob die Datenbank ausgelastet, blockiert oder im Leerlauf ist.
7.1.2 Untersuchung von Anwendungsverlangsamungen
Wenn eine bestimmte Anwendung nicht mehr reagiert, hilft Ihnen die Aktivitätsüberwachung dabei, festzustellen, ob Datenbankprobleme die Ursache sind. Filtern Sie den Bereich „Prozesse“ nach Anwendungsnamen, um nur die Datenbankaktivitäten dieser Anwendung anzuzeigen.
Wenn die Anwendung keine Datenbankaktivität anzeigt, während Benutzer Probleme melden, liegt die Ursache woanders im System. Wenn Sie umfangreiche Blockierungen oder ressourcenintensive Abfragen feststellen, haben Sie den Übeltäter gefunden.
7.1.3 Kurze Gesundheitschecks
Der Aktivitätsmonitor bietet ein hervorragendes Dashboard für schnelle Systemprüfungen im Rahmen der routinemäßigen Administration. Öffnen Sie ihn, werfen Sie einen Blick auf die Übersichtsgrafiken und vergewissern Sie sich, dass keine Auffälligkeiten vorliegen.
Diese kurze Überprüfung dauert nur Sekunden und kann Probleme aufdecken, bevor sie kritisch werden. Machen Sie sie zu einem festen Bestandteil Ihrer täglichen Routine.
7.2 Optimale Konfigurationseinstellungen
Durch eine angemessene Konfiguration des Aktivitätsmonitors werden sowohl dessen Nutzen als auch sein Ressourcenbedarf verbessert.
7.2.1 Empfohlene Aktualisierungsintervalle
Passen Sie das Aktualisierungsintervall Ihrem Zweck an:
- Aktive Fehlerbehebung: 10 Sekunden bieten eine gute Reaktionsfähigkeit bei angemessenem Overhead.
- Erweiterte Überwachung: 30-60 Sekunden reduzieren die Serverbelastung bei längeren Beobachtungszeiträumen.
- Diagnose des kritischen Problems: 5 Sekunden bieten eine hohe Granularität, wenn jede Sekunde zählt, sollten aber nur kurz verwendet werden.
- Regelmäßige Gesundheitschecks: Manuelle Aktualisierung (1-Stunden-Intervall), wenn Sie nicht aktiv zusehen.
Denken Sie daran, den Aktivitätsmonitor nach Gebrauch zu schließen. Wenn Sie ihn in einem langen Intervall starten und ihn dann vergessen, werden unnötig Serverressourcen verschwendet.
7.2.2 Filterstrategien
Nutzen Sie Filter, um sich auf relevante Informationen zu konzentrieren und die kognitive Belastung zu reduzieren:
- Filterprozesse nach Datenbank Um nur Aktivitäten in Bezug auf bestimmte Datenbanken anzuzeigen.
- Filtern nach einzuloggen oder um die Aktivitäten eines bestimmten Benutzers zu verfolgen.
- Filtern nach Aufgabenstatus = RUNNING, um inaktive Sitzungen auszublenden.
- Filtern nach Anwendung um den Datenverkehr bestimmter Programme zu isolieren.
- Nur Nichtleere anzeigen in Blockiert von nur blockierende Situationen anzeigen.
7.2.3 Spaltenauswahl und Sortierung
Entwickeln Sie einen systematischen Ansatz zur Auswertung der Aktivitätsmonitordaten:
- Start mit Übersicht: Prüfen Sie die Diagramme auf offensichtliche Ausreißer oder Anomalien.
- Prozesse auf Blockierung prüfen: Sortieren Sie nach Sitzungs-ID und suchen Sie dann nach Werten, die durch die Meldung „Blockiert von“ gekennzeichnet sind.
- Wartezeiten für Ressourcenbewertungen: Sortieren Sie nach der kumulierten Wartezeit, um Ressourcenengpässe zu identifizieren.
- Analyse teurer Abfragen: Sortieren Sie nach verschiedenen Metriken (CPU, Ausführungen, Lesevorgänge), um verschiedene Problemtypen zu finden.
- Überprüfung im E/A-Bereich: Prüfen Sie, ob E/A-intensive Abfragen mit einer hohen Festplattenaktivität korrelieren.
7.3 Integration mit anderen Tools
Der Aktivitätsmonitor eignet sich am besten als Teil eines umfassenderen Toolkits und weniger als eigenständige Lösung.
7.3.1 Verwendung mit SQL Server Profiler
Aktivitätsmonitor und SQL Server Profiler und Sitzungsmanager ergänzen sich gut. Wenn Sie in der Aktivitätsanzeige eine problematische Sitzung identifizieren, klicken Sie mit der rechten Maustaste darauf und wählen Sie „Profiler auswählen“. Trace-Prozess in SQL Server Profiler.
Dadurch wird der Profiler mit bereits konfigurierten Filtern gestartet, die nur die Aktivitäten dieser Sitzung erfassen. Sie sehen die vollständige Abfolge der ausgeführten Anweisungen, Zeitinformationen und Fehlermeldungen – Details, die der Aktivitätsmonitor nicht liefert.
Um darüber zu erfahren, lesen Sie unbedingt unseren Leitfaden: SQL Server Profilerfunktionen und erweiterte Tracing-Techniken, siehe unsere umfassend SQL Server Profiler-Leitfaden.
7.3.2 Ergänzung durch erweiterte Ereignisse
Erweiterte Ereignisse bieten eine ressourcenschonende, detaillierte Überwachung, die Informationen erfasst, die der Aktivitätsmonitor nicht anzeigt. Erstellen Sie Sitzungen für erweiterte Ereignisse, um spezifische Ereignisse wie Deadlocks, langlaufende Abfragen oder übermäßige Neukompilierungen zu verfolgen.
Nutzen Sie den Aktivitätsmonitor für sofortige Untersuchungen und die erweiterten Ereignisse für die laufende Überwachung und historische Analyse. Die beiden Tools decken unterschiedliche Bedürfnisse ab.
Um darüber zu erfahren, lesen Sie unbedingt unseren Leitfaden: SQL Server Erweiterte Ereignisfunktionen und fortschrittliche Überwachungstechniken finden Sie in unserer umfassend SQL Server Leitfaden für erweiterte Veranstaltungen.
7.3.3 Überwachungslösungen von Drittanbietern
Kommerzielle Tools wie SolarWinds Database Performance Analyzer, Redgate SQL Monitor und Quest Spotlight bieten Funktionen, die Activity Monitor nicht bietet: Benachrichtigungen, historische Trendanalysen, Kapazitätsplanung und automatisierte Diagnose.ostiks.
Diese Tools stellen eine wertvolle Ergänzung zum Aktivitätsmonitor dar, ersetzen ihn aber nicht. Der Aktivitätsmonitor bleibt auch dann nützlich für schnelle Überprüfungen und Untersuchungen, wenn ausgefeilte Überwachungstools verfügbar sind.
7.4 Häufige Fehler, die es zu vermeiden gilt
Wenn Sie die häufigsten Fehler im Aktivitätsmonitor kennen, können Sie ihn effektiver nutzen.
7.4.1 Aktivitätsmonitor dauerhaft im Hintergrund laufen lassen
Die most Ein häufiger Fehler ist, den Aktivitätsmonitor zu öffnen und ihn unbegrenzt laufen zu lassen. Das verschwendet Serverressourcen und bringt wenig Nutzen, da man ihn nicht aktiv überwacht.
Schließen Sie den Aktivitätsmonitor, wenn Sie ihn nicht aktiv nutzen. Falls Sie eine kontinuierliche Überwachung benötigen, implementieren Sie stattdessen eine geeignete Überwachungslösung mit geplanter Datenerfassung.
7.4.2 Zu starke Fokussierung auf die alleinige Nutzung des Aktivitätsmonitors
Die Aktivitätsüberwachung bietet nur einen Teil der Serverzustandsübersicht. Verlassen Sie sich nicht ausschließlich darauf. Ergänzen Sie sie mit dem Windows-Leistungsmonitor für Metriken auf Betriebssystemebene, erweiterten Ereignissen für detailliertes Tracking und der Ausführungsplananalyse zur Abfrageoptimierung.
Der Aktivitätsmonitor hilft Ihnen, Probleme zu erkennen, aber deren Lösung erfordert oft zusätzliche Tools und eine tiefergehende Analyse.
Mehr über erfahren SQL Server Leistungsmonitor in unserem vollständiger Guide.
7.4.3 Ignorieren historischer Trends
Der Aktivitätsmonitor zeigt den aktuellen Status an, doch Leistungsprobleme weisen oft erst im Laufe der Zeit Muster auf. Implementieren Sie die Erfassung historischer Daten, um aktuelle Messwerte mit Referenzwerten zu vergleichen und Trends zu erkennen.
Ohne den historischen Kontext erkennt man möglicherweise nicht, dass die heutige „normale“ CPU-Auslastung 30 % höher ist als der Basiswert des Vormonats, was auf eine allmähliche Verschlechterung hindeutet.
8. Behebung von Problemen mit der Aktivitätsanzeige
Der Aktivitätsmonitor selbst hat gelegentlich Probleme. Zu wissen, wie man diese Probleme behebt, beugt Frustration vor.
8.1 Die Aktivitätsanzeige lässt sich nicht öffnen oder zeigt keine Daten an
Wenn sich die Aktivitätsanzeige öffnet, aber leere Fenster anzeigt oder sich gar nicht erst öffnen lässt, können verschiedene Ursachen dafür verantwortlich sein.
8.1.1 Berechtigungsprobleme
Die most Eine häufige Ursache für Probleme mit der Aktivitätsanzeige sind unzureichende Berechtigungen. So überprüfen und beheben Sie das Problem:
- Überprüfen Sie Ihre Serverberechtigungen:
SELECT * FROM fn_my_permissions(NULL, 'SERVER') WHERE permission_name = 'VIEW SERVER STATE'; - Wenn keine Zeilen zurückgegeben werden, fehlt Ihnen die Berechtigung VIEW SERVER STATE.
- Bitten Sie einen Serveradministrator um die Berechtigung:
USE master; GRANT VIEW SERVER STATE TO [YourLogin]; - Schließen Sie die Aktivitätsanzeige und öffnen Sie sie erneut, nachdem die Berechtigungen erteilt wurden.
Versionskompatibilitätsprobleme 8.1.2
Verwendung einer alten Version von SQL Server Management Studio zur Verbindung mit einem neueren SQL Server Versionsänderungen können zu Fehlern im Aktivitätsmonitor führen. Das Tool erkennt möglicherweise neue Wartezeittypen oder Spalten in der Systemansicht nicht.
Verwenden Sie immer eine SSMS-Version, die mit Ihrer aktuellen Version übereinstimmt oder neuer ist. SQL Server Version. Microsoft bietet die neueste SSMS-Version separat als kostenlosen Download an. SQL Server sich.
8.1.3 Firewall- und Netzwerkprobleme
Der Aktivitätsmonitor benötigt eine Verbindung zum SQL Server Die Instanz verwendet Standardports (standardmäßig 1433). Falls die Verbindung über den Objekt-Explorer funktioniert, die Aktivitätsanzeige jedoch nicht, blockieren möglicherweise Firewall-Regeln bestimmte Verbindungen.
Vergewissern Sie sich, dass Ihr Kunde die folgende Adresse erreichen kann: SQL Server Prüfen Sie die Firewall auf allen erforderlichen Ports. Überprüfen Sie sowohl die Windows-Firewall als auch alle Netzwerk-Firewalls zwischen Client und Server.
8.2 Aktivitätsmonitor dauerhaft angehalten
Ein häufiges Problem, insbesondere in SQL Server Seit 2019 öffnet sich der Aktivitätsmonitor im pausierten Zustand und lässt sich nicht fortsetzen.
8.2.1 Den Pausenzustand verstehen
Wenn die Aktivitätsüberwachung pausiert, zeigen alle Bereiche den Status „Pausiert“ an, wobei die Schaltfläche „Fortsetzen“ möglicherweise nicht funktioniert. Dadurch werden Serveraktivitäten nicht angezeigt.
Der pausierte Zustand tritt in der Regel aufgrund von Berechtigungsproblemen, Einschränkungen der Remote-Verbindung oder Versionsfehlern in SSMS auf und nicht aufgrund einer beabsichtigten Pausenaktion.
8.2.2 Häufige Ursachen
Der Aktivitätsmonitor kann aus folgenden Gründen dauerhaft pausiert werden:
- Die Berechtigung VIEW SERVER STATE fehlt in neueren Bereichen, die kürzlich hinzugefügt wurden. SQL Server Versionen
- Remote-Verbindungen deaktiviert SQL Server Instanz
- Authentifizierungsfehler bei bestimmten Systemabfragen
- Fehler in bestimmten SSMS-Builds, insbesondere 18.0 bis 18.3
- Verbindungsprobleme zwischen Client und Server
8.2.3 Lösungsschritte
So beheben Sie Probleme mit dem pausierten Status der Aktivitätsüberwachung:
- SSMS aktualisieren: Downloaden und installieren Sie die neuesten SQL Server Die Management Studio-Version stammt von der Microsoft-Website. Viele Fehler im pausierten Zustand wurden in späteren Versionen behoben.
- Überprüfen Sie die Berechtigungen: Stellen Sie sicher, dass Sie über die Berechtigungen VIEW SERVER STATE und VIEW ANY DEFINITION verfügen.
- Remote-Verbindungen prüfen: Überprüfen Sie, dass die SQL Server Die Instanz erlaubt Remote-Verbindungen:
EXEC sp_configure 'remote access';Ist der Wert 0, bitten Sie einen Administrator, die Funktion zu aktivieren.
- Restart SSMS: Manchmal reicht es einfach, alle Fenster zu schließen und ...tarTing SQL Server Management Studio behebt das Problem.
- Verbindung mit Windows-Authentifizierung herstellen: Wenn Sie die SQL-Authentifizierung verwenden, versuchen Sie es stattdessen mit der Windows-Authentifizierung, da diese manchmal authentifizierungsbedingte Pausenprobleme umgeht.
8.3 Leistungsprobleme bei Verwendung des Aktivitätsmonitors
Wenn der Aktivitätsmonitor selbst langsam wird oder die Serverleistung beeinträchtigt, sind Anpassungen erforderlich.
8.3.1 Reduzierung des Überwachungsaufwands
Um die Auswirkungen des Aktivitätsmonitors zu minimieren:
- Erhöhen Sie das Aktualisierungsintervall auf 30 Sekunden oder 1 Minute.
- Durch Klicken auf die Schaltfläche „Ausblenden“ können Sie nicht benötigte Bereiche schließen.
- Wenn die Fenster minimiert sind, fragt die Aktivitätsüberwachung keine Daten für diese Fenster ab.
- Vermeiden Sie es, mehrere Instanzen des Aktivitätsmonitors gleichzeitig auszuführen.
- Schließen Sie den Aktivitätsmonitor vollständig, wenn Sie keine Probleme aktiv untersuchen.
8.3.2 Alternative, ressourcenschonende Überwachungsmethoden
Falls der Aktivitätsmonitor für Ihre Umgebung zu ressourcenintensiv ist, sollten Sie Alternativen in Betracht ziehen:
- Direkte Abfrage bei den Kfz-Zulassungsstellen: Schreiben Sie spezifische T-SQL-Abfragen, die nur die benötigten Informationen abrufen.
- Verwenden Sie sp_WhoIsActive: Diese gespeicherte Prozedur ist hochgradig optimiert und hat typischerweise einen geringeren Overhead als die Aktivitätsüberwachung.
- Stichproben durchführen: Planen Sie SQL-Agent-Aufträge, die in regelmäßigen Abständen Momentaufnahmen von DMV-Daten erfassen und die Ergebnisse zur späteren Analyse in Tabellen speichern.
- Sekundäre Replikate überwachen: In Immer verfügbar-GruppenFühren Sie den Aktivitätsmonitor auf einem lesbaren sekundären Laufwerk anstelle des primären Laufwerks aus.
8.4 Unrichtige oder fehlende Informationen
Manchmal zeigt der Aktivitätsmonitor Informationen an, die fehlerhaft oder unvollständig erscheinen.
8.4.1 Datenabgleich mit den Kfz-Zulassungsstellen
Wenn die Ergebnisse des Aktivitätsmonitors verdächtig erscheinen, überprüfen Sie sie durch direkte Abfrage der zugrunde liegenden DMVs. Wenn beispielsweise im Bereich „Prozesse“ keine Blockierung angezeigt wird, Benutzer diese aber melden, führen Sie folgende Abfrage durch:
SELECT
blocking_session_id,
session_id,
wait_type,
wait_time,
wait_resource
FROM sys.dm_exec_requests
WHERE blocking_session_id != 0;
Wenn diese Abfrage Blockierungen anzeigt, die vom Aktivitätsmonitor übersehen wurden, haben Sie ein Anzeigeproblem bestätigt.
8.4.2 Datenaktualisierungszeitpunkt verstehen
Beachten Sie, dass die Aktivitätsüberwachung Momentaufnahmen anzeigt. Eine Abfrage, die zwischen den Aktualisierungsintervallen ausgeführt wurde, wird nicht unter „Letzte ressourcenintensive Abfragen“ angezeigt, es sei denn, ihr Ausführungsplan ist noch im Cache vorhanden.
Die Wartezeitstatistiken im Bereich „Ressourcenwartezeiten“ spiegeln die seit der letzten Momentaufnahme akkumulierten Werte wider. Bei sich schnell ändernden Arbeitslasten können sich bei jeder Aktualisierung unterschiedliche Muster zeigen.
9. Fortgeschrittene Techniken zur Aktivitätsüberwachung
Erfahrene Datenbankadministratoren nutzen den Aktivitätsmonitor auf ausgefeilte Weise, um maximale Diagnoseergebnisse zu erzielen.ostic-Wert.
9.1 Kombination mehrerer Fenster zur Ursachenanalyse
Die wahre Stärke des Aktivitätsmonitors zeigt sich, wenn man Informationen aus verschiedenen Bereichen miteinander verknüpft, um komplexe Leistungsprobleme zu verstehen.
9.1.1 Korrelation von Wartezeiten mit Prozessen
Wenn im Bereich „Ressourcenwartezeiten“ hohe Wartezeiten in einer Kategorie angezeigt werden, verwenden Sie den Bereich „Prozesse“, um die Sitzungen zu identifizieren, die diese Wartezeiten aufweisen:
- Beachten Sie die Wartekategorie mit der höchsten kumulierten Wartezeit (z. B. „Sperre“).
- Wechseln Sie zum Bereich „Prozesse“.
- Sortieren nach Wartetyp Gruppensitzungen nach ihrer aktuellen Wartezeit.
- Suchen Sie nach Sitzungen, die Wartetypen in der problematischen Kategorie aufweisen.
- Untersuchen Sie für diese Sitzungen die Warten Sie auf die Ressource Spalte zur Anzeige der beteiligten Datenbankobjekte.
- Klicken Sie mit der rechten Maustaste und wählen Sie Details um den Abfragetext anzuzeigen.
Diese Korrelation hilft Ihnen, von „Wir haben Wartezeiten auf Sperren“ zu „Diese spezifische Abfrage wartet auf Sperren für diese Tabelle“ zu gelangen.
9.1.2 Verknüpfung von aufwändigen Abfragen mit E/A-Problemen
Wenn im Bereich „Datendatei-E/A“ eine hohe Festplattenaktivität auf einer bestimmten Datenbank angezeigt wird:
- Beachten Sie, welche Datenbankdateien hohe Lese- oder Schreibraten in MB/Sekunde aufweisen.
- Wechseln Sie zu den letzten teuren Suchanfragen.
- Sortieren nach Physische Messwerte/Sek. um Abfragen zu identifizieren, die viel von der Festplatte lesen.
- Filtern oder visuell identifizieren Sie Abfragen, die mit hohem E/A-Aufkommen auf die Datenbank zugegriffen wird.
- Untersuchen Sie die Ausführungspläne dieser Abfragen auf Tabellenscans oder fehlende Indizes, die zu übermäßigen E/A-Operationen führen.
Diese Mehrbereichsanalyse verbindet Symptome (hohe Festplatten-E/A) mit Ursachen (spezifische ineffiziente Abfragen).
9.2 Nutzung des Aktivitätsmonitors für die Kapazitätsplanung
Der Aktivitätsmonitor speichert zwar keine historischen Daten, kann aber strategisch für Beobachtungen im Rahmen der Kapazitätsplanung genutzt werden.
9.2.1 Identifizierung von Nutzungsspitzen
Überwachen Sie die Serveraktivität zu verschiedenen Tageszeiten, um Nutzungsmuster zu erkennen:
- Aktivieren Sie den Aktivitätsmonitor während bekannter Spitzenzeiten.
- Beachten Sie die Spitzenwerte im Diagramm „% Prozessorzeit“.
- Erfassen Sie die maximale Anzahl wartender Aufgaben.
- Beobachten Sie die Anzahl der Batch-Anfragen pro Sekunde zu Spitzenzeiten.
- Dokumentieren Sie die am stärksten ausgelasteten Datenbanken im Bereich „Prozesse“.
- Wiederholen Sie die Messung außerhalb der Stoßzeiten zum Vergleich.
Wenn die Prozessorauslastung während der Spitzenzeiten dauerhaft 80 % übersteigt, nähern Sie sich den Kapazitätsgrenzen der CPU. Ebenso deuten steigende Wartezeiten auf zunehmende Ressourcenkonflikte hin.
9.2.2 Ressourcentrendanalyse
Während der Aktivitätsmonitor den aktuellen Status anzeigt, können Sie ihn auch für Stichproben zur Trendanalyse nutzen, indem Sie wichtige Kennzahlen im Zeitverlauf aufzeichnen:
- Fertigen Sie jeden Tag zur gleichen Zeit Screenshots des Übersichtsbereichs an.
- Notieren Sie die Spitzenwerte aus jedem Diagramm.
- Vergleichen Sie die Werte von Woche zu Woche, um Wachstumstrends zu erkennen.
- Achten Sie auf allmähliche Erhöhungen der durchschnittlichen Prozessorzeit oder der E/A-Raten.
Diese manuelle Trendanalyse ergänzt komplexere Überwachungslösungen und hilft, eine Kapazitätserweiterung zu rechtfertigen.
9.3 Dokumentation von Leistungsbaselines
Die Festlegung von Leistungsmesswerten als Grundlage hilft Ihnen zu erkennen, wann die Leistung nachlässt.
9.3.1 Erfassung von Basiskennzahlen
Dokumentieren Sie während Perioden mit bekanntermaßen guter Leistung die Metriken des Aktivitätsmonitors:
- Aktivieren Sie den Aktivitätsmonitor während des normalen Geschäftsbetriebs (weder zu Spitzenzeiten noch außerhalb der Spitzenzeiten).
- Werte im Bereich „Datensatzübersicht“:
- Typischer prozentualer Prozessorzeitbereich
- Durchschnittliche Anzahl wartender Aufgaben
- Normale Datenbank-E/A-Rate
- Typische Batch-Anfragen/Sek.
- Beachten Sie die Kategorien im Bereich „Ressourcenwartezeiten“, die die m anzeigenost Wartezeit.
- Die Anzahl der aktiven Prozesse wird üblicherweise im Bereich „Prozesse“ dokumentiert.
- Erfassen Sie repräsentative Ausführungsmetriken von Abfragen aus den zuletzt durchgeführten ressourcenintensiven Abfragen.
Bewahren Sie diese Basisdokumentation zur späteren Verwendung bei der Untersuchung von Leistungsproblemen auf.
9.3.2 Vergleich der aktuellen Leistung mit der Ausgangsleistung
Wenn Leistungsprobleme auftreten, vergleichen Sie die aktuellen Messwerte des Aktivitätsmonitors mit Ihren dokumentierten Ausgangswerten:
- Ist die Prozessorzeit deutlich höher als der Basiswert? Konzentrieren Sie sich auf CPU-intensive Abfragen.
- Liegen die Wartezeiten bei den Aufgaben 2-3 Mal über dem Basiswert? Untersuchen Sie die Ressourcenwartezeiten.
- Ist die E/A-Last deutlich höher? Überprüfen Sie den Bereich „Datendatei-E/A“ und die ressourcenintensiven Abfragen.
- Sind die Batch-Anfragen während der Spitzenzeiten niedriger als im Normalwert? Prüfen Sie, ob Blockierungen oder Verbindungsprobleme vorliegen.
Dieser Vergleich hilft Ihnen, die Veränderungen zu erkennen und die Fehlersuche gezielt auszurichten.
9.4 Erstellen benutzerdefinierter Überwachungs-Workflows
Systematische Arbeitsabläufe für gängige Untersuchungsszenarien entwickeln, um eine gründliche und wiederholbare Analyse zu gewährleisten.
9.4.1 Schrittweiser Untersuchungsprozess
Wenn Benutzer Leistungsprobleme melden, befolgen Sie einen einheitlichen Arbeitsablauf:
- Kurzer Gesundheitscheck: Öffnen Sie die Aktivitätsanzeige und suchen Sie in den Diagrammen des Übersichtsbereichs nach offensichtlichen Anomalien.
- Auf Blockierungen prüfen: Erweitern Sie den Bereich „Prozesse“ und filtern Sie nach „Nicht leer“ in der Spalte „Blockiert durch“.
- Ressourcenkonflikte identifizieren: Überprüfen Sie den Bereich „Ressourcenwartezeiten“, sortiert nach Wartezeit.
- Teure Suchanfragen finden: Untersuchen Sie die letzten ressourcenintensiven Abfragen, sortiert nach CPU-Auslastung, dann Ausführungen und schließlich Lesevorgängen.
- Korrelieren Sie die I/O-Muster: Rechenintensive Abfragen mit den Aktivitäten im Bereich „Datendatei-E/A“ abgleichen.
- Dokumentergebnisse: Erstellen Sie Screenshots und notieren Sie relevante Sitzungs-IDs, Wartezeiten und Abfragedetails.
- Tieftauchgang: Nutzen Sie Profiler-Traces, Ausführungsplananalysen und DMV-Abfragen zur detaillierten Untersuchung identifizierter Probleme.
9.4.2 Eskalationskriterien
Kriterien festlegen, wann Probleme eskaliert und wann die Ermittlungen fortgesetzt werden sollen:
- Sofort eskalieren: Blockierende Ketten dauern länger als 5 Minuten, die Prozessorauslastung liegt seit mehr als 2 Minuten bei 100 %, kritische Systemprozesse zeigen den Status „ANGESTELLT“.
- Eskalation mit Analyse: Wiederkehrende, teure Abfragen, die mehr als 50 % der CPU-Leistung beanspruchen, konstant hohe E/A-Antwortzeiten von über 50 ms, wiederholt fehlgeschlagene Speicherzuweisungen.
- Weitere Recherchen: TemporarWartezeiten werden innerhalb von Minuten aufgelöst, Anfragen haben suboptimale Ausführungspläne, aber eine akzeptable Leistung, geringfügige Blockierungen dauern weniger als 30 Sekunden.
10. Aktivitätsmonitor in verschiedenen SQL Server Versionen
Der Aktivitätsmonitor hat sich weiterentwickelt SQL Server Versionen, wobei jede neue Version Verbesserungen und gelegentlich auch neue Probleme mit sich bringt.
10.1 Aktivitätsmonitor in SQL Server 2008 und später
SQL Server Im Jahr 2008 wurde das moderne Design des Aktivitätsmonitors eingeführt, das bis heute weitgehend unverändert geblieben ist.
10.1.1 Neue Funktionen eingeführt in SQL Server 2008
Die SQL Server Die Neugestaltung des Aktivitätsmonitors im Jahr 2008 brachte bedeutende Verbesserungen:
- Grafisches Dashboard mit Echtzeitdiagrammen im Übersichtsbereich
- Die Benutzeroberfläche mit erweiterbarem/reduzierbarem Fenster ersetzt die alte Rasteransicht.
- Der Bereich „Letzte ressourcenintensive Abfragen“ zeigt aggregierte Abfrageleistungsdaten an.
- Datendatei-E/A-Bereich zur Überwachung der Festplattenaktivität pro Datei
- Erweiterter Bereich „Ressourcenwartezeiten“ mit Wartezeitkategorisierung
- Kontextmenüs per Rechtsklick für Prozessaktionen wie das Beenden von Sitzungen und das Starten des Profilers
- Konfigurierbare Aktualisierungsintervalle von 1 Sekunde bis 1 Stunde
Durch diese Änderungen wurde der Activity Monitor von einer einfachen Prozessliste zu einem umfassenden Überwachungs-Dashboard.
10.1.2 Änderungen von SQL Server 2005
SQL Server Der Aktivitätsmonitor von 2005 war deutlich eingeschränkter:
- Zugriff über den Verwaltungsordner im Objekt-Explorer anstatt über die Symbolleiste
- Einzelnes Raster mit Prozessliste und grundlegenden Informationen
- Keine grafischen Diagramme oder mehrere Fenster
- Keine teuren Abfragen oder I/O-Überwachung
- Informationen zu den Wartezeiten
Die Neugestaltung im Jahr 2008 stellte eine vollständige Neukonzeption und keine schrittweise Verbesserung dar.
10.2 Aktivitätsmonitor in SQL Server 2014/2016
SQL Server Die Versionen 2014 und 2016 brachten schrittweise Verbesserungen an der zugrundeliegenden Datenerfassung des Aktivitätsmonitors, jedoch nur wenige visuelle Änderungen.
10.2.1 Verbesserungen und Erweiterungen
Zu den wichtigsten Verbesserungen dieser Versionen gehörten:
- Bessere Leistung bei der Überwachung von Servern mit Tausenden von zwischengespeicherten Plänen
- Erweiterte Filterfunktionen im Bereich „Prozesse“
- Verbesserte Genauigkeit der Aggregation von Wartezeitstatistiken
- Verbesserte Handhabung von Spaltensortierung und Filterung bei großen Ergebnismengen
- Effizientere DMV-Abfragen reduzieren den Überwachungsaufwand.
Die Kernschnittstelle blieb unverändert. SQL Server 2008, um die Vertrautheit für Administratoren aufrechtzuerhalten.
10.3 Aktivitätsmonitor in SQL Server 2019/2022
Aktuelle SQL Server Die folgenden Versionen setzen die Weiterentwicklung des Aktivitätsmonitors mit Fokus auf Leistung und Stabilität fort.
10.3.1 Neueste Funktionen und Möglichkeiten
SQL Server Der Aktivitätsmonitor für 2019 und 2022 umfasst:
- Unterstützung für neue Wartetypen, die in diesen Versionen eingeführt wurden
- Verbesserte Rendering-Leistung in SSMS durch Verwendung der WPF-Technologie
- Bessere Handhabung einer großen Anzahl aktiver Sitzungen
- Verbesserte Kompatibilität mit Cloud-SQL-Plattformen
- Genauere CPU- und E/A-Metriken
10.3.2 Bekannte Probleme in neueren Versionen
SQL Server Im Jahr 2019 wurden mehrere Fehler im Aktivitätsmonitor eingeführt:
- Permanenter Pausenzustand: Der Aktivitätsmonitor wechselt häufig in den Pausenzustand und lässt sich nicht fortsetzen, insbesondere in SSMS 18.0-18.3. In späteren SSMS-Versionen wurde das Problem behoben.
- Fehler bei der Remote-Verbindung: Bestimmte Konfigurationen verhindern, dass die Aktivitätsüberwachung auf Remoteinstanzen geöffnet wird. Als Abhilfe dienen das Aktivieren bestimmter Ablaufverfolgungsflags oder die Verwendung neuerer SSMS-Builds.
- Berechtigungsprobleme: Neue Systemansichten erfordern zusätzliche Berechtigungen, die nicht klar dokumentiert sind, was selbst bei aktiviertem VIEW SERVER STATE zu leeren Anzeigen führt.
Verwenden Sie beim Arbeiten mit SSMS immer die neueste Version. SQL Server 2019 und 2022, um diese Probleme zu vermeiden.
11. Praktische Anwendungsfälle und Beispiele
Praxisbeispiele veranschaulichen, wie der Aktivitätsmonitor in gängigen Fehlersuchszenarien effektiv eingesetzt werden kann.
11.1 Fallstudie: Diagnose einer langsamen Webanwendung
Ein Entwicklerteam berichtet, dass ihre Webanwendung unannehmbar langsam geworden ist; das Laden von Seiten dauert 20 bis 30 Sekunden anstatt der üblichen 2 bis 3 Sekunden.
11.1.1 Erste Untersuchung mit Übersichtsbereich
Öffnen Sie die Aktivitätsanzeige und untersuchen Sie den Übersichtsbereich:
- Das Diagramm zur Prozessorzeit in Prozent zeigt eine CPU-Auslastung von 85-95 %, die deutlich über dem normalen Basiswert von 30-40 % liegt.
- Die Anzahl der Wartezeitaufgaben schwankt zwischen 10 und 20 Aufgaben, im Vergleich zu einem normalen Ausgangswert von 0 bis 3.
- Die Datenbank-E/A-Aktivität ist mit rund 50 MB/s moderat.
- Die Anzahl der Batch-Anfragen pro Sekunde liegt mit 100 Anfragen pro Sekunde unter den Erwartungen, während sie während der Geschäftszeiten üblicherweise bei 300-400 Anfragen pro Sekunde liegt.
Dieses Muster deutet auf einen CPU-Engpass mit Ressourcenkonflikten hin, der zu einem reduzierten Durchsatz führt. Der Server arbeitet unter Volllast, kann aber nur wenige Anfragen bearbeiten.
11.1.2 Identifizierung der problematischen Anfrage
Erweitern Sie den Bereich „Letzte ressourcenintensive Abfragen“ und sortieren Sie nach Ausführungen/Minute:
- Die Top-Abfrage zeigt 15,000 Ausführungen pro Minute.
- Klicken Sie mit der rechten Maustaste und wählen Sie Abfragetext bearbeiten um die Anfrage zu prüfen.
- Die Abfrage ist eine einfache SELECT-Anweisung, die einen einzelnen Benutzerdatensatz abruft:
SELECT * FROM Users WHERE UserId = @UserId. - Diese Abfrage sollte bei normaler Anwendungsnutzung nicht 15,000 Mal pro Minute ausgeführt werden.
Klicken Sie mit der rechten Maustaste auf die Abfrage und wählen Sie aus Ausführungsplan anzeigenDer Plan zeigt einen Tabellenscan der Tabelle „Users“ mit einer Warnung bezüglich eines fehlenden Indexes in der Spalte „UserId“.
Filtern Sie den Bereich „Prozesse“ nach Anwendung, um nur die Verbindungen der Webanwendung anzuzeigen. In mehreren Sitzungen wird dieselbe Abfrage wiederholt ausgeführt.
11.1.3 Auflösung und Überprüfung
Das Problem hat zwei Ursachen: übermäßige Abfrageausführungen und einen fehlenden Index. Lösungsschritte:
- Erstellen Sie den fehlenden Index:
CREATE NONCLUSTERED INDEX IX_Users_UserId ON Users (UserId); - Kontaktieren Sie das Entwicklerteam Es geht um die übermäßige Ausführung von Codezeilen. Die Untersuchung deckt ein N+1-Abfrageproblem im Anwendungscode auf, bei dem eine Schleife für jedes Element einer Liste Benutzerdetails abruft.
- Ändern Sie die Anwendung Die Benutzerabfragen werden mithilfe einer IN-Klausel oder eines Tabellenwertparameters in einer einzigen Abfrage zusammengefasst.
- Überprüfen Sie die Reparatur. Durch Überwachung des Aktivitätsmonitors nach der Bereitstellung lässt sich feststellen, dass die CPU-Auslastung auf 35–40 % sinkt, die Ausführungen pro Minute auf 200–300 zurückgehen und die Antwortzeiten der Anwendung sich wieder normalisieren.
11.2 Fallstudie: Behebung eines Blockierungsproblems
Nutzer berichten, dass das Bestellsystem periodisch für 30 bis 60 Sekunden einfriert, bevor es den normalen Betrieb wieder aufnimmt.
11.2.1 Erkennen der Blockierungskette
Öffnen Sie die Aktivitätsanzeige während eines dieser Einfrierereignisse und erweitern Sie den Bereich „Prozesse“:
- Sortieren nach Session ID um alle organisierten Sitzungen einzusehen.
- Mehrere Sitzungen zeigen Werte in der Blockiert von Spalte, alle verweisen auf die Sitzungs-ID 73.
- Sitzung 73 zeigt '1' in der Kopfblocker Spalte, was bestätigt, dass dies die Ursache ist.
- Die Wartetyp Bei blockierten Sitzungen wird LCK_M_X angezeigt, was bedeutet, dass sie auf exklusive Sperren warten.
- Die Warten Sie auf die Ressource Die Spalte zeigt, dass die Blockierung in der Tabelle „Bestellungen“ erfolgt.
11.2.2 Ursachenanalyse
Klicken Sie mit der rechten Maustaste auf Sitzung 73 und wählen Sie aus Details Um den Befehl anzuzeigen:
UPDATE Orders
SET Status = 'Processing',
LastModified = GETDATE()
WHERE OrderId IN (SELECT OrderId FROM #TempOrders);
Dieses Update ist Teil eines Stapelverarbeitungsauftrags, der stündlich ausgeführt wird. Überprüfung der einzuloggen oder Die Spalte bestätigt, dass die Sitzung zum Batchverarbeitungsdienstkonto gehört.
Die Abfrage hält Sperren auf der Tabelle „Orders“, während sie Tausende von Bestellungen verarbeitet. Wartezeit Die Anzahl blockierter Sitzungen steigt stetig an, was bestätigt, dass dieser langlaufende Vorgang das Problem ist.
11.2.3 Implementierung der Korrektur
Kurzfristige Lösung:
- Die Details der Sitzung 73, einschließlich des Abfragetextes und der Dauer, werden dokumentiert.
- Da es sich um eine legitime Stapelverarbeitung handelt, lassen Sie das Update bitte normal abschließen.
- Nach Abschluss der Sitzungen überprüfen Sie, ob die blockierten Sitzungen aufgehoben wurden und der normale Betrieb wieder aufgenommen wird.
Langfristige Lösungen umgesetzt:
- Den Batch-Job neu planen um außerhalb der Stoßzeiten (2-4 Uhr morgens statt während der Geschäftszeiten) zu verkehren.
- Modifizieren Sie die Stapelverarbeitung. Bestellungen werden in kleineren Chargen von jeweils 100 Datensätzen aktualisiert, wobei die Sperren zwischen den Chargen aufgehoben werden.
- Hinzufügen eines Indexes um die Aktualisierungsoperation in der Spalte OrderId zu beschleunigen.
- Erwägen Sie die SNAPSHOT-Isolation. um die Auswirkungen von Blockierungen bei Lesevorgängen zu reduzieren.
11.3 Fallstudie: Identifizierung übermäßiger Abfrageausführungen
Die Datenbanküberwachung zeigt, dass die CPU-Auslastung im Laufe des letzten Monats allmählich zugenommen hat, aber es sind keine offensichtlichen Änderungen im Anwendungscode aufgetreten.
11.3.1 Aufspüren ungewöhnlicher Ausführungszahlen
Öffnen Sie die Aktivitätsüberwachung und überprüfen Sie den Bereich „Letzte ressourcenintensive Abfragen“:
- Sortieren nach Ausführungen/Minute um die m zu sehenost häufig ausgeführte Abfragen.
- Die Top-Abfrage verzeichnet 37,000 Ausführungen pro Minute – weit mehr als jede andere Abfrage.
- Klicken Sie mit der rechten Maustaste und wählen Sie Abfragetext bearbeiten.
- Die Abfrage ruft Produktkategorieinformationen ab:
SELECT CategoryId, CategoryName FROM ProductCategories WHERE CategoryId = @CategoryId; - Diese einfache Abfrage sollte schnell und zwischenspeicherbar sein, wird aber dennoch zehntausende Male pro Minute ausgeführt.
11.3.2 Rückverfolgung zum Anwendungscode
Suchen Sie im Bereich „Prozesse“ nach Sitzungen, die diese Abfrage ausführen:
- Beachten Sie das Anwendung In der Spalte wird „ProductCatalogService“ angezeigt.
- Klicken Sie mit der rechten Maustaste auf eine dieser Sitzungen und wählen Sie aus Trace-Prozess in SQL Server Profiler.
- Der SQL Profiler zeigt, dass die Abfrage wiederholt in schneller Folge mit unterschiedlichen CategoryId-Werten ausgeführt wird.
- Wenden Sie sich zur Codeüberprüfung an das Entwicklungsteam, das ProductCatalogService betreut.
Die Codeüberprüfung deckt das Problem auf: Eine kürzlich vorgenommene Änderung ruft Produktlisten mit Kategorien ab. Für jedes Produkt im Ergebnissatz (oft über 1,000 Produkte) führt der Code einen separaten Datenbankaufruf durch, um die Kategorieinformationen abzurufen – ein klassisches N+1-Abfrageproblem.
11.3.3 Optimierung der Anwendung
Führen Sie eine ordnungsgemäße Korrektur durch:
- Ändern Sie die Anwendungsabfrage Verwendung eines JOIN-Befehls zum Abrufen von Produkten und deren Kategorien in einem einzigen Datenbankaufruf:
SELECT p.ProductId, p.ProductName, c.CategoryId, c.CategoryName FROM Products p INNER JOIN ProductCategories c ON p.CategoryId = c.CategoryId WHERE p.Active = 1; - Stellen Sie den aktualisierten Code bereit. und den Aktivitätsmonitor überwachen.
- Überprüfen Sie die Korrektur: Die Anzahl der Ausführungen pro Minute für die Kategorieabfrage sinkt von 37,000 auf unter 100, und die Gesamt-CPU-Auslastung verringert sich um 40 %.
- Dokumentieren Sie die gewonnenen Erkenntnisse. und teilen Sie dies dem Entwicklungsteam mit, um ähnliche Probleme bei zukünftigen Codeänderungen zu vermeiden.
12. Erkennung potenzieller Datenbankbeschädigungen
Obwohl der Aktivitätsmonitor nicht speziell zur Erkennung von Datenbankbeschädigungen entwickelt wurde, können bestimmte Muster in seiner Anzeige auf zugrunde liegende Beschädigungsprobleme hinweisen, die eine weitere Untersuchung erfordern.
12.1 Symptome potenzieller Datenbankbeschädigung
Wenn eine Datenbank beschädigt ist und auf sie zugegriffen wird, kann es gelegentlich zu folgenden Meldungen kommen:
1. Im Bereich „Prozesse“:
- Sitzungen, die im Status „ANGESTELLT“ feststecken und ungewöhnliche Wartetypen aufweisen
- Prozesse, die Fehlerzustände anzeigen
- Abfragen schlagen wiederholt fehl
2. Im Bereich „Ressourcenwartezeiten“:
- Ungewöhnliche E/A-bezogene Wartezeiten, die auf Festplattenprobleme hindeuten könnten (wobei dies eher auf Hardwareprobleme als auf logische Datenbeschädigung hinweist).
3. In letzter Zeit teure Anfragen:
- Anfragen mit ungewöhnlich hoher Anzahl physischer Lesevorgänge, wenn wiederholt versucht wird, beschädigte Seiten zu lesen.
12.2 Weitere Prüfung mit DBCC CHECKDB
Wenn die Aktivitätsanzeige Anzeichen für eine mögliche Beschädigung anzeigt, sollten Sie umgehend DBCC CHECKDB ausführen, um die Datenbankintegrität zu überprüfen. Dieser Befehl scannt alle Datenbankseiten, validiert Prüfsummen und sucht nach Fehlern in der logischen Konsistenz.
Um mehr darüber zu erfahren, wie Sie DBCC CHECKDB zum Überprüfen und Beheben von Datenbankbeschädigungen verwenden, lesen Sie bitte unsere umfassender DBCC CHECKDB-Leitfaden.
12.3 Reparatur mit professionellen Werkzeugen
Wenn DBCC CHECKDB eine Beschädigung der Datenbank bestätigt, stehen Ihnen mehrere Reparaturmöglichkeiten zur Verfügung:
- Die bevorzugte Vorgehensweise ist die Wiederherstellung aus einem bekannten, funktionierenden Backup. Siehe Unser umfassender Leitfaden zum Sichern und Wiederherstellen SQL Server Datenbanken.
- Bei kleineren Beschädigungen kann DBCC CHECKDB mit REPAIR_REBUILD das Problem beheben.
- Für kritische Datenbanken ohne aktuelle Backups empfiehlt sich ein professioneller Service. SQL-Wiederherstellungssoftware Und solche Dienste können oft Daten wiederherstellen, die mit den integrierten Reparaturoptionen nicht wiederhergestellt werden können.
13. Fazit
SQL Server Der Activity Monitor ist ein unschätzbares Werkzeug für Datenbankadministratoren, das sofortige Einblicke in die Serverleistung bietet und dabei hilft, Probleme schnell und effektiv zu diagnostizieren.
13.1 Zusammenfassung der wichtigsten Punkte
In diesem Leitfaden haben wir untersucht, wie die Aktivitätsüberwachung Ihnen beim Verständnis und der Fehlerbehebung hilft. SQL Server Performance:
- Der Activity Monitor bietet über eine übersichtliche, grafische Benutzeroberfläche Echtzeit-Einblicke in Prozesse, Wartezeiten, Abfragen und E/A-Vorgänge.
- Die fünf Bereiche – Übersicht, Prozesse, Ressourcenwartezeiten, Datendatei-E/A und Aktuelle ressourcenintensive Abfragen – bieten jeweils einzigartige Einblicke in die Serveraktivität.
- Häufig auftretende Fehlerszenarien wie übermäßige Abfrageausführungen, blockierende Ketten und eine hohe CPU-Auslastung lassen sich durch eine systematische Untersuchung im Aktivitätsmonitor bewältigen.
- Der Aktivitätsmonitor ist zwar leistungsstark, hat aber auch Einschränkungen, darunter fehlende historische Daten, die Gruppierung von Wartezeiten und ein hoher Überwachungsaufwand, der seine Anwendung beeinträchtigt.cabFähigkeit.
- Durch die Ergänzung des Aktivitätsmonitors mit DMV-Abfragen, sp_WhoIsActive, erweiterten Ereignissen und gegebenenfalls Tools von Drittanbietern entsteht eine umfassende Überwachungsstrategie.
- Durch die Einhaltung bewährter Verfahren für Aktualisierungsintervalle, das Schließen des Aktivitätsmonitors bei Nichtgebrauch und die Kombination mehrerer Bereiche zur Korrelation wird sein Nutzen maximiert und gleichzeitig die Auswirkungen minimiert.
13.2 Aktivitätsmonitor als Teil Ihres Werkzeugkastens
Der Aktivitätsmonitor sollte als erstes Hilfsmittel zur Leistungsanalyse dienen, nicht als einziges. Seine Stärke liegt in der sofortigen Transparenz während der aktiven Fehlersuche. So können Sie schnell feststellen, ob die Datenbank der Flaschenhals ist und welche Aspekte einer genaueren Untersuchung bedürfen.
Stellen Sie sich den Aktivitätsmonitor wie das Armaturenbrett Ihres Autos vor – er zeigt Ihnen sofort an, wenn etwas nicht stimmt, und hilft Ihnen, den Problembereich einzugrenzen. Genau wie das Armaturenbrett Ihres Autos Ihnen nicht den genauen Grund für das Aufleuchten der Motorkontrollleuchte anzeigt, weist Sie der Aktivitätsmonitor auf Probleme hin, ohne immer deren vollständige Ursache preiszugeben. Für eine tiefergehende Analyse sind zusätzliche Tools und Fachkenntnisse erforderlich.
Integrieren Sie Activity Monitor in ein umfassenderes Toolkit, das die Analyse von Ausführungsplänen, die Verfolgung von Wartezeitstatistiken, Lösungen zur historischen Überwachung und Best Practices zur Leistungsoptimierung umfasst. Nutzen Sie es in Verbindung mit geeigneten Indexierungsstrategien, Techniken zur Abfrageoptimierung und Kapazitätsplanung.
13.3 Fortsetzung Ihrer Lernreise
Die Beherrschung des Aktivitätsmonitors ist nur ein Schritt auf dem Weg zu einem effektiven Datenbankadministrator. Bauen Sie Ihre Fähigkeiten weiter aus, indem Sie:
- Lernen, Ausführungspläne zu interpretieren und ineffiziente Abläufe zu identifizieren
- Ohne fundierte Kenntnisse zu SQL Server Wartezeitstatistiken und ihre Auswirkungen
- Untersuchung von Indexgestaltungs- und Optimierungstechniken
- Möglichkeiten sondieren SQL ServerDie Architektur von und wie sie Anfragen verarbeitet
- Systematische Fehlersuchmethoden anwenden
- Aufbau von Erfahrung mit erweiterten Ereignissen für die detaillierte Nachverfolgung
- Verständnis der Transaktionsisolationsstufen und ihrer Auswirkungen auf die Leistung
Jede Leistungsanalyse mit dem Aktivitätsmonitor lehrt Sie etwas Neues darüber, wie SQL Server Erforschen Sie die Funktionsweise von Anwendungen und deren Interaktion mit Datenbanken. Dokumentieren Sie Ihre Erkenntnisse, teilen Sie Ihr Wissen mit Kollegen und erstellen Sie eine Bibliothek.rary Lösungen für häufige Probleme.
13.4 Zusätzliche Ressourcen
Erweitern Sie Ihr Wissen mit diesen wertvollen Ressourcen:
- Öffnen Sie den Aktivitätsmonitor in SQL Server Management Studio (SSMS)
: Offizieller SQL Server Dokumentation zum Öffnen der Aktivitätsanzeige in SQL Server Management Studio (SSMS).
- Activity Monitor
: Offiziell SQL Server Dokumentation zur Verwendung des Aktivitätsmonitors.
14. Häufig gestellte Fragen (FAQ)
F: Was ist SQL Server Aktivitätsmonitor?
A: SQL Server Der Aktivitätsmonitor ist ein integriertes Tool in SQL Server Management Studio, das Echtzeitinformationen über Prozesse anzeigt, die auf einem System ausgeführt werden SQL Server Es bietet ein grafisches Dashboard mit fünf Bereichen, die verschiedene Aspekte der Serveraktivität anzeigen, darunter Prozessorauslastung, wartende Aufgaben, E/A-Raten, aktive Sitzungen und ressourcenintensive Abfragen.
F: Wie öffne ich die Aktivitätsüberwachung in SSMS?
A: Sie können die Aktivitätsanzeige auf vier Arten öffnen: (1) Klicken Sie auf das Symbol der Aktivitätsanzeige in der SSMS-Symbolleiste, (2) Klicken Sie mit der rechten Maustaste auf Ihre SQL Server Instanznamen im Objekt-Explorer anzeigen und auswählen Activity Monitor(3) Presse Ctrl + Andere + Aoder (4) SSMS so konfigurieren, dass es automatisch gestartet wird über Zubehör -> Einstellungen -> Arbeitsumfeld -> Startup.
F: Welche Berechtigungen benötige ich, um die Aktivitätsanzeige zu verwenden?
A: Du brauchst die SERVERSTATUS ANZEIGEN Erlaubnis, m zu sehenost Informationen zur Aktivitätsüberwachung. Für den Bereich „Datendatei-E/A“ benötigen Sie außerdem entweder DATENBANK ERSTELLEN, BELIEBIGE DATENBANK ÄNDERNden BELIEBIGE DEFINITION ANSEHEN Berechtigungen. Ohne diese Berechtigungen kann die Aktivitätsanzeige zwar geöffnet werden, zeigt aber leere Fenster an.
F: Warum ist meine Aktivitätsanzeige pausiert oder funktioniert nicht?
A: Die Aktivitätsüberwachung pausiert üblicherweise aufgrund von Berechtigungsproblemen, veralteten SSMS-Versionen oder deaktivierten Remote-Verbindungen. Zur Behebung: (1) Aktualisieren Sie SSMS auf die neueste Version. (2) Stellen Sie sicher, dass Sie die Berechtigung „Serverstatus anzeigen“ besitzen. (3) Prüfen Sie, ob Remote-Verbindungen aktiviert sind. SQL Server Beispiel (4) Restart SSMS und (5) Versuchen Sie, sich mit Windows-Authentifizierung anstelle der SQL-Authentifizierung zu verbinden, falls zutreffend.cabihnen.
F: Worin besteht der Unterschied zwischen der Aktivitätsüberwachung und sp_WhoIsActive?
A: Der Aktivitätsmonitor ist ein in SSMS integriertes grafisches Tool mit übersichtlichen Bereichen für verschiedene Überwachungsaspekte. sp_WhoIsActive ist eine kostenlose, von der Community entwickelte gespeicherte Prozedur, die detaillierte Sitzungsinformationen in einem einzigen Ergebnis-Set mit spezifischeren Wartetypen, Blockierungsdetails und Anpassungsoptionen als der Aktivitätsmonitor zurückgibt. Der Aktivitätsmonitor eignet sich besser für die visuelle Analyse, während sp_WhoIsActive sich hervorragend für die skriptbasierte Überwachung eignet und detailliertere Informationen liefert.
F: Beeinträchtigt der Aktivitätsmonitor die Serverleistung?
A: Ja, die Aktivitätsüberwachung verursacht einen messbaren Mehraufwand, da sie bei jeder Aktualisierung die System-DMVs abfragt. Dieser Mehraufwand steigt mit sinkenden Aktualisierungsraten – Microsoft warnt davor, dass Intervalle unter 10 Sekunden die Serverleistung beeinträchtigen können. Schließen Sie die Aktivitätsüberwachung daher immer, wenn Sie sie nicht aktiv nutzen, und erwägen Sie Aktualisierungsintervalle von 30 bis 60 Sekunden auf Produktionsservern unter hoher Last.
F: Kann ich Aktivitätsmonitordaten mithilfe von T-SQL abrufen?
A: Ja, der Aktivitätsmonitor fragt dynamische Systemverwaltungssichten wie sys.dm_exec_requests, sys.dm_exec_sessions, sys.dm_os_wait_stats und sys.dm_exec_query_stats ab. Sie können diese DMVs direkt mit T-SQL abfragen, um äquivalente Informationen programmatisch abzurufen und so benutzerdefinierte Überwachungsskripte und eine automatisierte Datenerfassung zu ermöglichen.
F: Was ist das standardmäßige Aktualisierungsintervall?
A: Das Standard-Aktualisierungsintervall beträgt 10 Sekunden. Sie können dies ändern, indem Sie mit der rechten Maustaste in den Übersichtsbereich klicken und die entsprechende Option auswählen. Aktualisierungsintervallund zur Auswahl aus vordefinierten Optionen: 1 Sekunde, 5 Sekunden, 10 Sekunden, 30 Sekunden, 1 Minute oder 1 Stunde. Kürzere Intervalle ermöglichen mehr Echtzeitansichten, erhöhen aber den Überwachungsaufwand.
F: Wie kann ich den Aktivitätsmonitor in SSMS automatisch öffnen?tarTup?
A: Automatisches Starten über die SSMS-Optionen konfigurieren: Navigieren Sie zu Zubehör -> Einstellungen -> Arbeitsumfeld -> StartupUnd wählen Sie dann Objekt-Explorer und Aktivitätsmonitor öffnen von der Bei starTUP Dropdown-Menü. Der Aktivitätsmonitor wird jedes Mal automatisch geöffnet, wenn Sie in SSMS eine Verbindung zu einem Server herstellen.
F: Welche Einschränkungen hat der Aktivitätsmonitor?
A: Zu den wichtigsten Einschränkungen gehören: (1) Keine Speicherung historischer Daten oder Trendanalysen, (2) Wartearten werden in Kategorien gruppiert, anstatt spezifisch angezeigt zu werden, (3) Einige Wartearten wie CXPACKET werden möglicherweise nicht angezeigt, (4) Momentaufnahmen erfassen möglicherweise vorübergehende Probleme nicht, (5) Der Überwachungsaufwand kann ausgelastete Server beeinträchtigen, (6) Kein Alarmmechanismus für die proaktive Überwachung und (7) Keine Möglichkeit zur Datenaggregation über mehrere Server hinweg SQL Server Für diese Anforderungen ergänzen Sie den Aktivitätsmonitor durch erweiterte Ereignisse, Datenerfassungssätze oder Überwachungstools von Drittanbietern.
Über den Autor
Yuan Sheng ist ein erfahrener Datenbankadministrator (DBA) mit über 10 Jahren Erfahrung in SQL Server Umgebungen und Unternehmensdatenbankverwaltung. Er hat Hunderte von Datenbankwiederherstellungsszenarien in Finanzdienstleistungs-, Gesundheits- und Fertigungsunternehmen erfolgreich gelöst.
Yuan ist spezialisiert auf SQL Server Datenbankwiederherstellung Hochverfügbarkeitslösungenund Leistungsoptimierung. Seine umfassende praktische Erfahrung umfasst die Verwaltung von Multi-Terabyte-Datenbanken, die Implementierung von Always On Availability Groups und die Entwicklung automatisierter Backup- und Wiederherstellungsstrategien für unternehmenskritische Systeme.
Durch sein technisches Fachwissen und seinen praktischen Ansatz konzentriert sich Yuan auf die Erstellung umfassender Anleitungen, die Datenbankadministratoren und IT-Experten bei der Lösung komplexer SQL Server Herausforderungen effizient. Er bleibt auf dem Laufenden mit den neuesten SQL Server und die sich entwickelnden Datenbanktechnologien von Microsoft und testet regelmäßig Wiederherstellungsszenarien, um sicherzustellen, dass seine Empfehlungen den bewährten Vorgehensweisen der Praxis entsprechen.
Haben Sie Fragen zu SQL Server Wiederherstellung oder benötigen Sie zusätzliche Anleitung zur Datenbank-Fehlerbehebung? Yuan begrüßt Feedback und Vorschläge zur Verbesserung dieser technischen Ressourcen.


















