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 2016 (13.x) e versões
posteriores Instância Gerenciada SQL do Azure
Saiba como usar eventos estendidos para monitorizar e solucionar problemas de operações relacionadas aos Serviços de Machine Learning do SQL Server, Launchpad do SQL Server e scripts externos de Python ou R.
Eventos estendidos para os Serviços de Aprendizado de Máquina do SQL Server
Para exibir uma lista de eventos relacionados aos Serviços de Aprendizado de Máquina do SQL Server, execute a seguinte consulta no SQL Server Management Studio (SSMS), a extensão MSSQL para Visual Studio Code, sqlcmd ou sua ferramenta de consulta T-SQL favorita.
SELECT o.name AS event_name, o.description
FROM sys.dm_xe_objects o
JOIN sys.dm_xe_packages p
ON o.package_guid = p.guid
WHERE o.object_type = 'event'
AND p.name = 'SQLSatellite';
Para obter mais informações sobre como usar eventos estendidos, consulte Ferramentas de eventos estendidos.
Eventos adicionais específicos dos Serviços de Aprendizado de Máquina
Eventos estendidos adicionais estão disponíveis para componentes relacionados e usados pelos Serviços de Aprendizagem de Máquina do SQL Server, como o SQL Server Launchpad, o BXLServer e o processo satélite que inicia o runtime do Python ou R. Esses eventos estendidos adicionais são disparados dos processos externos; portanto, eles devem ser capturados usando um utilitário externo.
Para obter mais informações sobre como fazer isso, consulte a seção Coletando eventos de processos externos.
Tabela de eventos estendidos
| Event | Description | Observações |
|---|---|---|
| aceitar_conexão | Ocorre quando uma nova conexão é aceita. Esse evento serve para registrar todas as tentativas de conexão. | |
| falha_no_lançamento | Falha no lançamento. | Indica um erro. |
| interrupção_de_conexão_por_satélite | Anular registo de ligação | |
| satélite_abortar_recebido | É acionado quando uma mensagem de anulação é recebida através de uma conexão via satélite. | |
| envio_de_cancelamento_de_satélite | É acionado quando uma mensagem de interrupção é enviada por conexão via satélite. | |
| conclusão_da_autenticação_por_satélite | É acionado quando a autenticação é concluída para uma conexão via TCP ou pipe nomeado. | |
| conclusão de autorização de satélite | É acionado quando a autorização é concluída para uma conexão via TCP ou pipe nomeado. | |
| limpeza_de_satélite | Ativa quando o satélite chama a limpeza. | Demitido apenas de processo externo. Consulte as instruções sobre como coletar eventos de processos externos. |
| segmento_de_dados_de_satélite_enviado | É acionado quando a conexão via satélite termina de enviar um único bloco de dados. | O evento relata o número de linhas enviadas, o número de colunas, o número de pacotes SNI utilizados e o tempo decorrido, em milissegundos, durante o envio do bloco. As informações podem ajudá-lo a entender quanto tempo é gasto passando diferentes tipos de dados e quantos pacotes são usados. |
| conclusão_recebimento_dados_satélite | É acionado quando todos os dados necessários por uma consulta são recebidos através da conexão via satélite. | Demitido apenas de processo externo. Consulte as instruções sobre como coletar eventos de processos externos. |
| conclusão_do_envio_de_dados_por_satélite | É acionado quando todos os dados necessários para uma sessão são enviados através da conexão via satélite. | |
| dados_satelite_envio_iniciar | É acionado quando a transmissão de dados é iniciada. | A transmissão de dados começa pouco antes do primeiro bloco de dados ser enviado. |
| erro_de_satélite | Usado para tracejar erro de satélite SQL | |
| satélite_mensagem_tamanho_inválido | O tamanho da mensagem não é válido | |
| mensagem_coalescida_de_satélite | Usado para rastrear mensagens coalescentes na camada de rede | |
| buffer_de_mensagem_por_satélite_registro_circular | registo de buffer circular de mensagem | |
| resumo_mensagem_satélite | Informações resumidas sobre mensagens | |
| versão da mensagem de satélite não corresponde | O campo de versão da mensagem não corresponde | |
| mensagens via satélite | Usado para rastrear eventos de mensagens (bind, unbind, etc.) | |
| mensagem_parcial_do_satélite | Usado para rastrear mensagens parciais na camada de rede | |
| satélite_esquema_recebido | É acionado quando a mensagem do esquema é recebida e lida pelo SQL. | |
| satellite_schema_sent | É acionado quando a mensagem do esquema é enviada pelo satélite. | Demitido apenas de processo externo. Consulte as instruções sobre como coletar eventos de processos externos. |
| início_serviço_satélite_postado | É acionado quando a mensagem de inicialização do serviço é publicada no launchpad. | Instrui o Launchpad a iniciar o processo externo e contém um ID para a nova sessão. |
| satélite_mensagem_inesperada_recebida | É acionado quando uma mensagem inesperada é recebida. | Indica um erro. |
| stack_trace | Ocorre quando um despejo de memória do processo é solicitado. | Indica um erro. |
| trace_event | Utilizados para fins de localização | Esses eventos podem conter SQL Server, Launchpad e mensagens de rastreamento de processo externo. Isso inclui a saída para stdout e stderr de R. |
| launchpad_launch_start | É acionado quando a plataforma de lançamento inicia o lançamento de um satélite. | Demitido apenas do Launchpad. Consulte as instruções sobre como coletar eventos de launchpad.exe. |
| lançamento_reinício_enviado | É acionado quando a plataforma lança o satélite e envia uma mensagem de retoma ao SQL Server. | Demitido apenas do Launchpad. Consulte as instruções sobre como coletar eventos de launchpad.exe. |
| segmento_de_dados_de_satélite_enviado | É acionado quando a conexão via satélite termina de enviar um único bloco de dados. | Contém informações sobre o número de colunas, número de linhas, número de pacotes e tempo decorrido no envio do bloco. |
| satellite_sessionId_mismatch | O ID de sessão da mensagem não é esperado |
Coleta de eventos de processos externos
Os Serviços de Aprendizado de Máquina do SQL Server iniciam alguns serviços que são executados fora do processo do SQL Server. Para capturar eventos relacionados a esses processos externos, você deve criar um arquivo de configuração de rastreamento de eventos e colocar o arquivo no mesmo diretório que o executável para o processo.
Importante
A partir do SQL Server 2019, o mecanismo de isolamento foi alterado. Portanto, você precisa dar permissões apropriadas para o diretório onde o arquivo de configuração de rastreamento de eventos está armazenado. Para obter mais informações sobre como definir essas permissões, consulte a seção Permissões de arquivo no SQL Server 2019 no Windows: alterações de isolamento para Serviços de Aprendizado de Máquina.
Barra Inicial do SQL Server
Para capturar eventos relacionados à Barra Inicial, coloque o arquivo .xml no diretório Binn da instância do SQL Server. Em uma instalação padrão, isso seria:
C:\Program Files\Microsoft SQL Server\MSSQL_version_number.MSSQLSERVER\MSSQL\Binn.BXLServer é o processo satélite que suporta extensibilidade SQL com linguagens de script externas, como R ou Python. Uma instância separada de BxlServer é executada para cada instância de idioma externo.
Para capturar eventos relacionados ao BXLServer, coloque o arquivo .xml no diretório de instalação R ou Python. Em uma instalação padrão, isso seria:
R:
C:\Program Files\Microsoft SQL Server\MSSQL_version_number.MSSQLSERVER\R_SERVICES\library\RevoScaleR\rxLibs\x64.Python:
C:\Program Files\Microsoft SQL Server\MSSQL_version_number.MSSQLSERVER\PYTHON_SERVICES\Lib\site-packages\revoscalepy\rxLibs.
O arquivo de configuração deve ser nomeado o mesmo que o executável, usando o formato "[nome].xevents.xml". Em outras palavras, os arquivos devem ser nomeados da seguinte forma:
Launchpad.xevents.xmlbxlserver.xevents.xml
O arquivo de configuração em si tem o seguinte formato:
<?xml version="1.0" encoding="utf-8"?>
<event_sessions>
<event_session name="[session name]" maxMemory="1" dispatchLatency="1" MaxDispatchLatency="2 SECONDS">
<description owner="you">Xevent for launchpad or bxl server.</description>
<event package="SQLSatellite" name="[XEvent Name 1]" />
<event package="SQLSatellite" name="[XEvent Name 2]" />
<target package="package0" name="event_file">
<parameter name="filename" value="[SessionName].xel" />
<parameter name="max_file_size" value="10" />
<parameter name="max_rollover_files" value="10" />
</target>
</event_session>
</event_sessions>
- Para configurar o rastreamento, edite o espaço reservado para o nome da sessão, o espaço reservado para o nome do arquivo (
[SessionName].xel) e os nomes dos eventos que você deseja capturar, Por exemplo,[XEvent Name 1][XEvent Name 1], ). - Qualquer quantidade de tags do pacote de eventos pode surgir e será recolhida, desde que o atributo "name" esteja correto.
Exemplo: Capturando eventos do Launchpad
O exemplo a seguir mostra a definição de um rastreamento de eventos para o serviço Launchpad:
<?xml version="1.0" encoding="utf-8"?>
<event_sessions>
<event_session name="sqlsatelliteut" maxMemory="1" dispatchLatency="1" MaxDispatchLatency="2 SECONDS">
<description owner="hay">Xevent for sql tdd runner.</description>
<event package="SQLSatellite" name="launchpad_launch_start" />
<event package="SQLSatellite" name="launchpad_resume_sent" />
<target package="package0" name="event_file">
<parameter name="filename" value="launchpad_session.xel" />
<parameter name="max_file_size" value="10" />
<parameter name="max_rollover_files" value="10" />
</target>
</event_session>
</event_sessions>
- Coloque o arquivo .xml no diretório Binn para a instância do SQL Server.
- Este arquivo deve ser nomeado
Launchpad.xevents.xml.
Exemplo: Capturando eventos BXLServer
O exemplo a seguir mostra a definição de um rastreamento de evento para o executável BXLServer.
<?xml version="1.0" encoding="utf-8"?>
<event_sessions>
<event_session name="sqlsatelliteut" maxMemory="1" dispatchLatency="1" MaxDispatchLatency="2 SECONDS">
<description owner="hay">Xevent for sql tdd runner.</description>
<event package="SQLSatellite" name="satellite_abort_received" />
<event package="SQLSatellite" name="satellite_authentication_completion" />
<event package="SQLSatellite" name="satellite_cleanup" />
<event package="SQLSatellite" name="satellite_data_receive_completion" />
<event package="SQLSatellite" name="satellite_data_send_completion" />
<event package="SQLSatellite" name="satellite_data_send_start" />
<event package="SQLSatellite" name="satellite_schema_sent" />
<event package="SQLSatellite" name="satellite_unexpected_message_received" />
<event package="SQLSatellite" name="satellite_data_chunk_sent" />
<target package="package0" name="event_file">
<parameter name="filename" value="satellite_session.xel" />
<parameter name="max_file_size" value="10" />
<parameter name="max_rollover_files" value="10" />
</target>
</event_session>
</event_sessions>
- Coloque o arquivo .xml no mesmo diretório que o executável BXLServer.
- Este arquivo deve ser nomeado
bxlserver.xevents.xml.