Verwenden der system_health-Sitzung

 

Veröffentlicht: September 2016

DIESES THEMA GILT FÜR:jaSQL Server (ab 2014)jaAzure SQL-DatenbankneinAzure SQL Data Warehouse neinParallel Data Warehouse

Bei der system_health-Sitzung handelt es sich um eine standardmäßig in SQL Server enthaltene Sitzung für erweiterte Ereignisse. Diese Sitzung wird automatisch beim Start von SQL Server-Datenbankmodul gestartet und ohne merkliche Auswirkungen auf die Leistung ausgeführt. In der Sitzung werden Systemdaten erfasst, mit deren Hilfe Sie Leistungsprobleme in Datenbankmodulbeheben können. Daher empfiehlt es sich, die Sitzung nicht zu beenden oder zu löschen.

In der Sitzung werden u. a. folgende Informationen erfasst:

  • „sql_text“ und „session_id“ aller Sitzungen, in denen ein Fehler mit einem Schweregrad >= 20 aufgetreten ist.

  • „sql_text“ und „session_id“ aller Sitzungen, in denen ein arbeitsspeicherbezogener Fehler aufgetreten ist. Zu diesen Fehlern zählen 17803, 701, 802, 8645, 8651, 8657 und 8902.

  • Aufzeichnungen zu allen nicht gelösten Zeitplanungsproblemen. (Diese werden im SQL Server-Fehlerprotokoll als Fehler 17883 angezeigt.)

  • Alle erkannten Deadlocks.

  • „callstack“, „sql_text“ und „session_id“ aller Sitzungen, die > 15 Sekunden lang auf Latches (oder andere relevante Ressourcen) gewartet haben.

  • „callstack“, „sql_text“ und „session_id“ aller Sitzungen, die > 30 Sekunden lang auf Sperren gewartet haben.

  • „callstack“, „sql_text“ und „session_id“ aller Sitzungen, die lange auf präemptive Wartevorgänge gewartet haben. Die Dauer schwankt je nach Wartetyp. Bei einem präemptiven Wartevorgang wartet SQL Server auf externe API-Aufrufe.

  • Die Aufrufliste und session_id für Fehler bei der CLR-Belegung und virtuellen Belegung.

  • Die ring_buffer-Ereignisse für den Speicherbroker, die Zeitplanungsmodul-Überwachung, Speicherknoten-OOMs sowie Sicherheit und Konnektivität.

  • Die Systemkomponente ergibt sich aus sp_server_diagnostics.

  • Mit scheduler_monitor_system_health_ring_buffer_recorded erfasster Zustand der Instanz.

  • CLR-Belegungsfehler.

  • Konnektivitätsfehler mit connectivity_ring_buffer_recorded.

  • Sicherheitsfehler mit security_error_ring_buffer_recorded.

In der Sitzung werden die Daten im Ringpufferziel gespeichert. Zum Anzeigen der Sitzungsdaten verwenden Sie die folgende Abfrage:

SELECT CAST(xet.target_data as xml) FROM sys.dm_xe_session_targets xet  
JOIN sys.dm_xe_sessions xe  
ON (xe.address = xet.event_session_address)  
WHERE xe.name = 'system_health'  

Um die Sitzungsdaten aus der Ereignisdatei anzuzeigen, verwenden Sie die in Management Studio verfügbare Benutzeroberfläche für erweiterte Ereignisse. Weitere Informationen finden Sie unter Erweiterte Ansicht von Zieldaten aus erweiterten Ereignissen in SQL Server.

Wenn Sie die system_health-Sitzung gelöscht haben, können Sie diese wiederherstellen, indem Sie die Datei u_tables.sql im Abfrage-Editor ausführen. Diese Datei befindet sich im folgenden Ordner, wobei C: dem Laufwerk entspricht, auf dem Sie die SQL Server-Programmdateien installiert haben:

C:\Programme\Microsoft SQL Server\MSSQL13.<Instanz-ID>\MSSQL\Install

Wenn Sie die Sitzung wiederhergestellt haben, müssen Sie die Sitzung mit der ALTER EVENT SESSION-Anweisung oder über den Knoten Erweiterte Ereignisse im Objekt-Explorer starten. Andernfalls wird die Sitzung beim nächsten Neustart des SQL Server-Diensts automatisch gestartet.

Tools für erweiterte Ereignisse

Community-Beiträge

HINZUFÜGEN
Anzeigen: