Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: SQL Server 2016 (13.x) e versões posteriores
da Instância Gerenciada de SQL do Azure
Saiba como usar eventos estendidos para monitorar e solucionar problemas de operações relacionadas aos scripts externos de trabalhos nos Serviços de Machine Learning do SQL Server, no SQL Server Launchpad, no Python ou no R.
Eventos estendidos para os Serviços de Machine Learning do SQL Server
Para exibir uma lista de eventos relacionados aos Serviços de Machine Learning 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 saber mais sobre como usar eventos estendidos, confira Ferramentas de eventos estendidos.
Eventos adicionais específicos para os Serviços de Machine Learning
Os eventos estendidos adicionais estão disponíveis para os componentes relacionados e usados pelos Serviços de Machine Learning do SQL Server, como o SQL Server Launchpad, o BXLServer e o processo de satélite que inicia o runtime do Python ou do R. Esses eventos estendidos adicionais são disparados por processos externos; portanto, devem ser capturados usando um utilitário externo.
Para saber mais sobre como fazer isso, confira a seção Coletar eventos de processos externos.
Tabela de eventos estendidos
| Evento | Descrição | Observações |
|---|---|---|
| conexão_aceitar | Ocorre quando uma nova conexão é aceita. Este evento serve para registrar todas as tentativas de conexão. | |
| falha_ao_iniciar | Falha na inicialização. | Indica um erro. |
| satélite_abortar_conexão | Cancelar o registro da conexão | |
| aborto_do_satélite_recebido | Acionado quando uma mensagem de cancelamento é recebida por meio de uma conexão por satélite. | |
| Comando de abortar enviado ao satélite | Acionado quando uma mensagem de cancelamento é enviada por meio de uma conexão por satélite. | |
| conclusão da autenticação por satélite | Acionado quando uma autenticação é concluída para uma conexão via TCP ou pipe nomeado. | |
| finalizacao_da_autorizacao_do_satelite | Acionado quando a autorização é concluída para uma conexão via TCP ou pipe nomeado. | |
| satélite_cleanup | É acionado quando a limpeza das chamadas via satélite é executada. | Acionado somente a partir de processo externo. Confira instruções sobre a coleta de eventos a partir de processos externos. |
| dado_de_satélite_bloco_enviado | Acionado quando a conexão por satélite conclui o envio de uma única parte de dados. | O evento informa o número de linhas enviadas, o número de colunas, o número de pacotes SNI utilizados e o tempo decorrido durante o envio da parte, em milissegundos. As informações podem ajudá-lo a compreender quanto tempo é gasto para passar diferentes tipos de dados e quantos pacotes são usados. |
| conclusão do recebimento de dados de satélite | Acionado quando todos os dados necessários de uma consulta são recebidos por meio de uma conexão por satélite. | Acionado somente a partir de processo externo. Confira instruções sobre a coleta de eventos a partir de processos externos. |
| conclusão do envio de dados por satélite | Acionado quando todos os dados necessários de uma sessão são enviados por meio de uma conexão por satélite. | |
| satellite_data_send_start | Dispara quando a transmissão de dados é iniciada. | A transmissão de dados começa logo antes da primeira parte dos dados ser enviada. |
| satellite_error | Usado para rastrear erros do SQL Satellite | |
| satellite_invalid_sized_message | O tamanho da mensagem não é válido | |
| mensagem de satélite consolidada | Usado para rastreamento de união de mensagens em camada de rede | |
| registro_buffer_circular_de_mensagem_de_satelite | Registro do buffer circular de mensagens | |
| resumo_da_mensagem_de_satélite | Informações resumidas sobre mensagens | |
| satellite_message_version_mismatch | O campo de versão da mensagem não corresponde | |
| mensagens via satélite | Usado para rastrear eventos de mensageria (bind, unbind, etc.) | |
| satellite_partial_message | Usado para rastreamento de mensagens parciais em camada de rede | |
| esquema_de_satélite_recebido | É acionado quando a mensagem de esquema é recebida e lida pelo SQL. | |
| satellite_schema_sent | É acionado quando a mensagem de esquema é enviada pelo satélite. | Acionado somente a partir de processo externo. Confira instruções sobre a coleta de eventos a partir de processos externos. |
| início do serviço de satélite publicado | É acionado quando a mensagem de início do serviço é publicada no Launchpad. | Informa ao Launchpad que deve iniciar o processo externo e contém a ID da nova sessão. |
| Mensagem inesperada recebida do satélite | Acionado quando uma mensagem inesperada é recebida. | Indica um erro. |
| stack_trace | Ocorre quando o despejo de memória do processo é solicitado. | Indica um erro. |
| trace_event | Usado para fins de rastreamento | Esses eventos podem conter mensagens de rastreamento do SQL Server, do Launchpad e de processos externos. Isso inclui a saída para stdout e stderr do R. |
| launchpad_launch_start | É acionado quando a plataforma de lançamento começa a lançar um satélite. | Acionado somente a partir do Launchpad. Confira instruções sobre a coleta de eventos a partir do arquivo launchpad.exe. |
| launchpad_resume_sent | Acionado quando o Launchpad inicializa o satélite e envia uma mensagem resumida para o SQL Server. | Acionado somente a partir do Launchpad. Confira instruções sobre a coleta de eventos a partir do arquivo launchpad.exe. |
| dado_de_satélite_bloco_enviado | Acionado quando a conexão por satélite conclui o envio de uma única parte de dados. | Contém informações sobre o número de colunas, o número de linhas, o número de pacotes e o tempo decorrido no envio do bloco. |
| satellite_sessionId_mismatch | O identificador da sessão da mensagem não é esperado |
Coletar eventos de processos externos
Os Serviços de Machine Learning 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 colocá-lo no mesmo diretório do executável do processo.
Importante
A partir do SQL Server 2019, o mecanismo de isolamento foi alterado. Portanto, você precisa fornecer as permissões apropriadas para o diretório no qual o arquivo de configuração de rastreamento de eventos está armazenado. Para obter mais informações sobre como definir essas permissões, confira a seção Permissões de arquivo em SQL Server 2019 no Windows: alterações de isolamento nos Serviços de Machine Learning.
Barra inicial do SQL Server
Para capturar eventos relacionados ao Launchpad, coloque o arquivo .xml no diretório Binn da instância do SQL Server. Em uma instalação padrão, seria:
C:\Program Files\Microsoft SQL Server\MSSQL_version_number.MSSQLSERVER\MSSQL\Binn.O BXLServer é o processo satélite que oferece suporte à extensibilidade do SQL com linguagens de script externas, como R ou Python. Uma instância separada do BxlServer será iniciada para cada instância de linguagem externa.
Para capturar eventos relacionados ao BXLServer, coloque o arquivo .xml no diretório de instalação do R ou do Python. Em uma instalação padrão, 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 ter o mesmo nome do 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 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 nome da sessão, o espaço reservado para o nome do arquivo (
[SessionName].xel) e os nomes dos eventos que deseja capturar (como[XEvent Name 1],[XEvent Name 1]). - Qualquer número de tags de pacote de evento pode aparecer e será coletado, desde que o atributo name esteja correto.
Exemplo: Capturar eventos do Launchpad
O exemplo a seguir mostra a definição de um rastreamento de eventos para o serviço do 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 da instância do SQL Server.
- Esse arquivo deve ser nomeado
Launchpad.xevents.xml.
Exemplo: Capturar eventos do BXLServer
O exemplo a seguir mostra a definição de um rastreamento de eventos 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.
- Esse arquivo deve ser nomeado
bxlserver.xevents.xml.