Verwenden der system_health-SitzungUse the system_health Session

GILT FÜR: jaSQL ServerjaAzure SQL-DatenbankneinAzure SQL Data Warehouse neinParallel Data WarehouseAPPLIES TO: yesSQL Server yesAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Bei der system_health-Sitzung handelt es sich um eine standardmäßig in SQL ServerSQL Serverenthaltene Sitzung für erweiterte Ereignisse.The system_health session is an Extended Events session that is included by default with SQL ServerSQL Server. Diese Sitzung wird automatisch beim Start von SQL Server-Datenbank-EngineSQL Server Database Engine gestartet und ohne merkliche Auswirkungen auf die Leistung ausgeführt.This session starts automatically when the SQL Server-Datenbank-EngineSQL Server Database Engine starts, and runs without any noticeable performance effects. In der Sitzung werden Systemdaten erfasst, mit deren Hilfe Sie Leistungsprobleme in Datenbank-EngineDatabase Enginebeheben können.The session collects system data that you can use to help troubleshoot performance issues in the Datenbank-EngineDatabase Engine.

Wichtig

Es wird empfohlen, die Systemintegritätssitzung nicht zu beenden, zu ändern oder zu löschen.We recommend that you do not stop, alter, or delete the system health session.

In der Sitzung werden u. a. folgende Informationen erfasst:The session collects information that includes the following:

  • sql_text und session_id aller Sitzungen, in denen ein Fehler mit einem Schweregrad >= 20 aufgetreten ist.The sql_text and session_id for any sessions that encounter an error that has a severity >= 20.

  • sql_text und session_id aller Sitzungen, in denen ein arbeitsspeicherbezogener Fehler aufgetreten ist.The sql_text and session_id for any sessions that encounter a memory-related error. Zu diesen Fehlern zählen 17803, 701, 802, 8645, 8651, 8657 und 8902.The errors include 17803, 701, 802, 8645, 8651, 8657 and 8902.

  • Aufzeichnungen zu allen nicht gelösten Zeitplanungsproblemen.A record of any non-yielding scheduler problems. Diese werden im SQL ServerSQL Server-Fehlerprotokoll als Fehler 17883 angezeigt.These appear in the SQL ServerSQL Server error log as error 17883.

  • Alle Deadlocks, die erkannt werden, einschließlich des Deadlockdiagramms.Any deadlocks that are detected, including the deadlock graph.

  • callstack, sql_text und session_id aller Sitzungen, die mehr als 15 Sekunden lang auf Latches (oder andere relevante Ressourcen) gewartet haben.The callstack, sql_text, and session_id for any sessions that have waited on latches (or other interesting resources) for > 15 seconds.

  • callstack, sql_text und session_id aller Sitzungen, die mehr als 30 Sekunden lang auf Sperren gewartet haben.The callstack, sql_text, and session_id for any sessions that have waited on locks for > 30 seconds.

  • callstack, sql_text und session_id aller Sitzungen, die lange auf präemptive Wartevorgänge gewartet haben.The callstack, sql_text, and session_id for any sessions that have waited for a long time for preemptive waits. Die Dauer schwankt je nach Wartetyp.The duration varies by wait type. Bei einem präemptiven Wartevorgang wartet SQL ServerSQL Server auf externe API-Aufrufe.A preemptive wait is where SQL ServerSQL Server is waiting for external API calls.

  • callstack und session_id für Fehler bei der CLR-Belegung und virtuellen Belegung.The callstack and session_id for CLR allocation and virtual allocation failures.

  • Die Ringpufferereignisse für den Speicherbroker, die Zeitplanungsmodul-Überwachung, Speicherknoten-OOMs sowie Sicherheit und Konnektivität.The ring buffer events for the memory broker, scheduler monitor, memory node OOM, security, and connectivity.

  • Die Systemkomponente ergibt sich aus sp_server_diagnostics.System component results from sp_server_diagnostics.

  • Mit scheduler_monitor_system_health_ring_buffer_recorded erfasste Integrität der Instanz.Instance health collected by scheduler_monitor_system_health_ring_buffer_recorded.

  • CLR-Belegungsfehler.CLR Allocation failures.

  • Konnektivitätsfehler mit connectivity_ring_buffer_recorded.Connectivity errors using connectivity_ring_buffer_recorded.

  • Sicherheitsfehler mit security_error_ring_buffer_recorded.Security errors using security_error_ring_buffer_recorded.

Hinweis

Weitere Informationen zu Deadlocks finden Sie unter dem Stichwort „Deadlocks“ im Handbuch zu Transaktionssperren und Zeilenversionsverwaltung.For more information on deadlocks, see deadlocking in the Transaction Locking and Row Versioning Guide.
Weitere Informationen zu SQL-Fehlermeldungen finden Sie unter Datenbankenginefehler.For more information on SQL error messages, see Database Engine Errors.

Anzeigen der SitzungsdatenViewing the Session Data

In der Sitzung werden die Daten im Ringpufferziel und Ereignisdateiziel gespeichert.The session uses the ring buffer target and event file target to store the data. Das Ereignisdateiziel ist mit einer maximalen Größe von 5 MB und einer Richtlinie für die Aufbewahrung von 4 Dateien konfiguriert.The event file target is configured with a maximum size of 5 MB and a file retention policy of 4 files.

Um die Sitzungsdaten aus dem Ringpufferziel mit der in SQL Server Management StudioSQL Server Management Studio verfügbaren Benutzeroberfläche für erweiterte Ereignisse anzuzeigen, lesen Sie Erweiterte Ansicht von Zieldaten aus erweiterten Ereignissen in SQL Server: Beobachten von Livedaten.To view the session data from the ring buffer target with the Extended Events user interface available in SQL Server Management StudioSQL Server Management Studio, see Advanced Viewing of Target Data from Extended Events in SQL Server - Watch live data.

Zum Anzeigen der Sitzungsdaten aus dem Ringpufferziel mit Transact-SQLTransact-SQL verwenden Sie die folgende Abfrage:To view the session data from the ring buffer target with Transact-SQLTransact-SQL, use the following query:

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 SQL Server Management StudioSQL Server Management Studio verfügbare Benutzeroberfläche für erweiterte Ereignisse.To view the session data from the event file, use the Extended Events user interface available in SQL Server Management StudioSQL Server Management Studio. Weitere Informationen finden Sie unter Erweiterte Ansicht von Zieldaten aus erweiterten Ereignissen in SQL Server.For more information, see Advanced Viewing of Target Data from Extended Events in SQL Server.

Wiederherstellen der system_health-SitzungRestoring the system_health Session

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.If you delete the system_health session, you can restore it by executing the u_tables.sql file in Query Editor. Diese Datei befindet sich im folgenden Ordner, wobei C: dem Laufwerk entspricht, auf dem Sie die SQL ServerSQL Server-Programmdateien installiert haben, und MSSQL1x ist die Hauptversion von SQL ServerSQL Server:This file is located in the following folder, where C: represents the drive where you installed the SQL ServerSQL Server program files, and MSSQL1x the major version of SQL ServerSQL Server:

C:\Program Files\Microsoft SQL Server\MSSQL1x.\<*instanceid*>\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.Be aware that after you restore the session, you must start the session by using the ALTER EVENT SESSION statement or by using the Extended Events node in Object Explorer. Andernfalls wird die Sitzung beim nächsten Neustart des SQL ServerSQL Server -Diensts automatisch gestartet.Otherwise, the session starts automatically the next time that you restart the SQL ServerSQL Server service.

Weitere InformationenSee Also

Erweiterte Ereignisse Extended Events
Tools für erweiterte Ereignisse Extended Events Tools
Fehler der Datenbank-Engine Database Engine Errors
Meldungskatalogsichten (für Fehlermeldungen): sys.messagesMessages (for errors) Catalog Views - sys.messages