Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server
Azure SQL Managed Instance
A system_health sessão é uma sessão de Eventos Estendidos incluída por padrão no SQL Server e na Instância Gerenciada SQL do Azure. Esta sessão é iniciada automaticamente quando o Mecanismo de Banco de Dados é iniciado e é executada sem qualquer sobrecarga de desempenho percetível. A sessão coleta dados do sistema que você pode usar para ajudar a solucionar problemas de desempenho no Mecanismo de Banco de Dados.
Importante
Recomendamos que não pare, altere ou elimine a system_health sessão. Quaisquer alterações feitas nas configurações da system_health sessão podem ser substituídas por uma atualização futura do produto.
A sessão recolhe informações que incluem as seguintes informações:
- O
sql_textesession_idpara todas as sessões que encontrarem um erro que tenha uma gravidade >= 20. - O
sql_texte osession_idpara quaisquer sessões que encontrem um erro relacionado à memória. Os erros incluem 17803, 701, 802, 8645, 8651, 8657 e 8902. - Um registro de quaisquer problemas de agendamento não produtivos. Eles aparecem no log de erros do SQL Server como erro 17883.
- Quaisquer impasses detetados, incluindo o gráfico de deadlock.
-
callstack,sql_textesession_idpara quaisquer sessões que tenham esperado em latches (ou outros recursos relevantes) por > 15 segundos. - O
callstack,sql_text, esession_idpara quaisquer sessões que tenham esperado em bloqueios por > 30 segundos. - O
callstack,sql_textesession_idpara quaisquer sessões que tenham esperado muito tempo por esperas preemptivas. A duração varia de acordo com o tipo de espera. Uma espera preventiva é quando o SQL Server está aguardando chamadas de API externas. - Os
callstackesession_idem caso de falhas na alocação CLR e na alocação virtual. - Os eventos do buffer de anel para o gestor de memória, monitor do agendador, memória esgotada (OOM) do nó, segurança e conectividade.
- O componente do sistema resulta de
sp_server_diagnostics. - Estado de saúde da instância recolhido pelo
scheduler_monitor_system_health_ring_buffer_recorded. - Falhas de alocação no CLR.
- Erros de conectividade usando
connectivity_ring_buffer_recorded. - Erros de segurança usando
security_error_ring_buffer_recorded.
Observação
Para obter mais informações sobre deadlocks, consulte o guia Deadlocks. Para obter mais informações sobre mensagens de erro SQL, consulte Eventos e erros do Mecanismo de Banco de Dados.
Ver os dados da sessão system_health
A sessão usa o destino do buffer de anel e o destino do arquivo de eventos para armazenar os dados. O destino do arquivo de evento é configurado com um tamanho máximo de 5 MB e uma política de retenção de arquivos de 4 arquivos. Nas edições Standard e Enterprise do SQL Server, o destino do arquivo de evento aumentou os limites: um tamanho máximo de 100 MB e uma política de retenção de arquivos de 10 arquivos.
Para visualizar os dados do destino do buffer de anel com a interface de utilizador dos Eventos Estendidos disponível no SQL Server Management Studio, consulte Exibição avançada de dados de destino de eventos estendidos no SQL Server - Visualizar dados em tempo real.
Para exibir os dados da sessão do destino do buffer de anel com o Transact-SQL, use a seguinte consulta:
SELECT CAST(xet.target_data as xml) AS target_data
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 da sessão a partir do arquivo de eventos, utilize a interface de utilizador do Visualizador de Eventos Estendidos disponível no SQL Server Management Studio. Para obter mais informações, consulte Exibir dados de eventos no SQL Server Management Studio.
Restaurar a sessão system_health
Se você excluir a system_health sessão, poderá restaurá-la executando o u_tables.sql script. Esse arquivo está localizado na seguinte pasta, onde C: representa a unidade onde você instalou os arquivos de programa do SQL Server e MSSQLnn a versão principal do SQL Server:
C:\Program Files\Microsoft SQL Server\MSSQLnn.\<instanceid>\MSSQL\Install
Depois de restaurar a sessão, você deve iniciá-la usando a ALTER EVENT SESSION instrução ou o 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 do SQL Server.
A sessão system_health no Azure SQL
Na Azure SQL Managed Instance, os dados da sessão podem ser exibidos clicando com o system_health botão direito do mouse no alvo event_file ou ring_buffer no Explorador de Objetos e selecionando Exibir Dados de Destino.
Não há nenhuma sessão interna de system_health Evento Estendido no Banco de Dados SQL do Azure, mas você pode usar a função para ler as sys.fn_xe_file_target_read_file() sessões de Evento Estendido que você mesmo cria e armazena no Armazenamento do Azure. Para obter uma explicação passo a passo, consulte Código de destino do Arquivo de Evento para Eventos Estendidos no Banco de Dados SQL do Azure.