Usar a sessão de system_health
A sessão system_health é uma sessão de Eventos Estendidos, incluída por padrão com o SQL Server. Essa sessão é iniciada automaticamente quando o Mecanismo de Banco de Dados do SQL Server é iniciado e executa sem qualquer efeito notável de desempenho. A sessão coleta dados do sistema que você pode usar para ajudar a solucionar problemas de desempenho no Mecanismo de Banco de Dados. Portanto, é recomendável não interromper ou excluir a sessão.
As informações coletadas pela sessão, incluem:
O sql_text e o session_id de qualquer sessão que encontre um erro tenha uma severidade >= 20.
O sql_text e o session_id de qualquer sessão que encontre um erro relacionado à memória. Os erros incluem 17803, 701, 802, 8645, 8651, 8657 e 8902.
Um registro de qualquer problema de agendador que não esteja respondendo. (Esses registros aparecem no log de erros do SQL Server como o erro 17883.)
Qualquer deadlock que tenha sido detectado.
O callstack, o sql_text e o session_id de qualquer sessão que teve esperas em travas (ou outros recursos interessantes) por > 15 segundos.
O callstack, sql_text e o session_id de qualquer sessão que teve esperas em bloqueios por > 30 segundos.
O callstack, o sql_text e o session_id de qualquer sessão que esperou por muito tempo por esperas preventivas. A duração varia de acordo com o tipo de espera. Uma espera preventiva ocorre quando o SQL Server está esperando por chamadas de API externas.
A pilha de chamadas e a session_id para alocação de CLR e falhas de alocação virtual.
Os eventos de ring_buffer para o agente de memória, monitor de agendador, OOM de nó de memória, segurança e conectividade.
Resultados de componente de sistema de sp_server_diagnostics.
A integridade da instância coletada por scheduler_monitor_system_health_ring_buffer_recorded.
Falhas de alocação de CLR.
Erros de conectividade usando connectivity_ring_buffer_recorded.
Erros de segurança usando security_error_ring_buffer_recorded.
Exibindo os dados da sessão
A sessão usa o destino do buffer de anéis para armazenar os dados. Para exibir os dados da sessão, use a consulta a seguir:
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'
Para visualizar os dados de sessão do arquivo de evento, use a interface de usuário de eventos estendidos disponível no Management Studio. Consulte Exibir dados de sessão de evento para obter mais informações.
Restaurando a sessão de system_health
Se você excluir a sessão de system_health, poderá restaurá-la por meio da execução do arquivo u_tables.sql no Editor de Consultas. Esse arquivo está localizado na pasta seguinte, onde C: representa a unidade onde você instalou os arquivos de programa do SQL Server:
C:\Arquivos de Programas\Microsoft SQL Server\MSSQL11.<instanceid>\MSSQL\Install
Lembre-se de que, depois de restaurar a sessão, você deve iniciá-la com a instrução ALTER EVENT SESSION ou por meio do nó Eventos Estendidos no Pesquisador de Objetos. Caso contrário, a sessão será iniciada automaticamente na próxima vez que você reiniciar o serviço SQL Server.