Utilizzare la sessione system_healthUse the system_health Session

QUESTO ARGOMENTO SI APPLICA A:sìSQL Server (a partire dalla versione 2014)sìDatabase SQL di AzurenoAzure SQL Data Warehouse noParallel Data Warehouse THIS TOPIC APPLIES TO:yesSQL Server (starting with 2014)yesAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

La sessione system_health è una sessione di eventi estesi inclusa per impostazione predefinita in SQL ServerSQL Server.The system_health session is an Extended Events session that is included by default with SQL ServerSQL Server. Questa sessione viene avviata automaticamente all'avvio del Motore di database di SQL ServerSQL Server Database Engine e viene eseguita senza effetti rilevanti sulle prestazioni.This session starts automatically when the Motore di database di SQL ServerSQL Server Database Engine starts, and runs without any noticeable performance effects. La sessione raccoglie dati del sistema che consentono di semplificare la risoluzione dei problemi relativi alle prestazioni nel Motore di databaseDatabase Engine.The session collects system data that you can use to help troubleshoot performance issues in the Motore di databaseDatabase Engine. È pertanto consigliabile non arrestare o eliminare la sessione.Therefore, we recommend that you do not stop or delete the session.

La sessione raccoglie le informazioni seguenti:The session collects information that includes the following:

  • Sql_text e session_id per qualsiasi sessione in cui si verifica un errore con gravità >=20.The sql_text and session_id for any sessions that encounter an error that has a severity >=20.

  • Sql_text e session_id per qualsiasi sessione in cui si verifica un errore relativo alla memoria.The sql_text and session_id for any sessions that encounter a memory-related error. ad esempio gli errori 17803, 701, 802, 8645, 8651, 8657 e 8902.The errors include 17803, 701, 802, 8645, 8651, 8657 and 8902.

  • Un record di qualsiasi problema dell'utilità di pianificazione relativo alla mancata cessione del controllo.A record of any non-yielding scheduler problems. Questi problemi sono inclusi come errori 17883 nel log degli errori di SQL ServerSQL Server .(These appear in the SQL ServerSQL Server error log as error 17883.)

  • Qualsiasi deadlock rilevato.Any deadlocks that are detected.

  • Callstack, sql_text e session_id per qualsiasi sessione in attesa su latch (o altre risorse interessanti) per un tempo maggiore a 15 secondi.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 e session_id per qualsiasi sessione in attesa su blocchi per un tempo maggiore a 30 secondi.The callstack, sql_text, and session_id for any sessions that have waited on locks for > 30 seconds.

  • Callstack, sql_text e session_id per qualsiasi sessione rimasta in attesa per molto tempo a causa di attese preemptive.The callstack, sql_text, and session_id for any sessions that have waited for a long time for preemptive waits. La durata varia in base al tipo di attesa.The duration varies by wait type. In un'attesa preemptive SQL ServerSQL Server è in attesa di chiamate API esterne.A preemptive wait is where SQL ServerSQL Server is waiting for external API calls.

  • callstack e session_id per l'allocazione CLR e per errori di allocazione virtuali.The callstack and session_id for CLR allocation and virtual allocation failures.

  • Eventi ring_buffer per il broker di memoria, il monitoraggio dell'utilità di pianificazione, la memoria insufficiente del nodo di memoria, la sicurezza e la connettività.The ring_buffer events for the memory broker, scheduler monitor, memory node OOM, security, and connectivity.

  • Risultati del componente di sistema da sp_server_diagnostics.System component results from sp_server_diagnostics.

  • Integrità dell'istanza raccolta da scheduler_monitor_system_health_ring_buffer_recorded.Instance health collected by scheduler_monitor_system_health_ring_buffer_recorded.

  • Errori di allocazione CLR.CLR Allocation failures.

  • Errori di connettività utilizzando connectivity_ring_buffer_recorded.Connectivity errors using connectivity_ring_buffer_recorded.

  • Errori di sicurezza utilizzando security_error_ring_buffer_recorded.Security errors using security_error_ring_buffer_recorded.

Visualizzazione dei dati della sessioneViewing the Session Data

Nella sessione viene utilizzata la destinazione del buffer circolare per archiviare i dati.The session uses the ring buffer target to store the data. Per visualizzare i dati della sessione, utilizzare la query seguente:To view the session data, 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'  

Per visualizzare i dati sessione dell'evento file, utilizzare l'interfaccia utente degli eventi estesi disponibili in Management Studio.To view the session data from the event file, use the Extended Events user interface available in Management Studio. Per altre informazioni, vedere Visualizzazione avanzata dei dati di destinazione da eventi estesi in SQL Server.For more information, see Advanced Viewing of Target Data from Extended Events in SQL Server.

Ripristino della sessione system_healthRestoring the system_health Session

Se si elimina la sessione system_health, è possibile ripristinarla eseguendo il file u_tables.sql nell'editor di query.If you delete the system_health session, you can restore it by executing the u_tables.sql file in Query Editor. Questo file si trova nella cartella seguente, dove C: rappresenta l'unità in cui sono stati installati i file di programma di 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:

C:\Programmi\Microsoft SQL Server\MSSQL13.<idistanza>\MSSQL\InstallC:\Program Files\Microsoft SQL Server\MSSQL13.<instanceid>\MSSQL\Install

Tenere presente che dopo aver ripristinato la sessione, è necessario avviarla tramite l'istruzione ALTER EVENT SESSION o tramite il nodo Eventi estesi in Esplora oggetti.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. In caso contrario, la sessione verrà avviata al successivo riavvio del servizio SQL ServerSQL Server .Otherwise, the session starts automatically the next time that you restart the SQL ServerSQL Server service.

Vedere ancheSee Also

Strumenti degli eventi estesiExtended Events Tools