Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a: SQL Server 2016 (13.x) y versiones posteriores
de Azure SQL Managed Instance
Obtenga información sobre cómo usar eventos extendidos para supervisar y solucionar problemas de operaciones relacionadas con los scripts externos de trabajos de Python o R, SQL Server Machine Learning Services y SQL Server Launchpad.
Eventos extendidos para SQL Server Machine Learning Services
Para ver una lista de eventos relacionados con SQL Server Machine Learning Services, ejecute la siguiente consulta en SQL Server Management Studio (SSMS), la extensión MSSQL para Visual Studio Code, sqlcmd o la herramienta de consulta de 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 obtener más información sobre cómo usar eventos extendidos, vea Herramientas de eventos extendidos.
Eventos adicionales específicos de Machine Learning Services
Hay eventos extendidos adicionales disponibles para los componentes que están relacionados y que se usan en SQL Server Machine Learning Services, como SQL Server Launchpad y BXLServer, y el proceso satélite que inicia el entorno de ejecución de R o Python. Estos eventos extendidos adicionales se generan por procesos externos; por lo tanto, se deben capturar mediante una utilidad externa.
Para obtener más información sobre cómo hacerlo, vea la sección Recopilar eventos de procesos externos.
Tabla de eventos extendidos
| Evento | Descripción | Notas |
|---|---|---|
| connection_accept | Se produce cuando se acepta una conexión nueva. Este evento sirve para registrar todos los intentos de conexión. | |
| Error al iniciar | Error de inicio. | Indica un error. |
| satélite_abortar_conexión | Anula el registro de conexión. | |
| se recibió la señal de aborto del satélite | Se activa cuando se recibe un mensaje de interrupción a través de una conexión por satélite. | |
| satellite_abort_sent | Se activa cuando se envía un mensaje de cancelación a través de una conexión por satélite. | |
| satellite_authentication_completion | Se activa cuando se completa la autenticación para una conexión a través de TCP o una canalización con nombre. | |
| finalización de la autorización del satélite | Se activa cuando se completa la autorización para una conexión a través de TCP o una canalización con nombre. | |
| limpieza_de_satélites | Se activa cuando el satélite solicita la limpieza. | Se activa solo desde procesos externos. Consulte las instrucciones sobre la colección de eventos desde procesos externos. |
| fragmento_datos_satélite_enviado | Se activa cuando la conexión por satélite termina de enviar un único fragmento de datos. | El evento notifica el número de filas enviadas, el número de columnas, el número de paquetes SNI usados y el tiempo transcurrido en milisegundos al enviar el fragmento. La información puede ayudarle a comprender cuánto tiempo se dedicó a pasar distintos tipos de datos, y cuántos paquetes se usaron. |
| recepción_de_datos_satelitales_completada | Se activa cuando se reciben todos los datos requeridos por una consulta a través de la conexión por satélite. | Se activa solo desde procesos externos. Consulte las instrucciones sobre la colección de eventos desde procesos externos. |
| finalización del envío de datos por satélite | Se activa cuando se envían todos los datos necesarios para una sesión a través de la conexión por satélite. | |
| satellite_data_send_start | Se activa cuando comienza la transmisión de datos. | La transmisión de datos se inicia justo antes de enviarse el primer fragmento de datos. |
| satellite_error | Se utiliza para rastrear errores de satélite SQL. | |
| mensaje_de_tamaño_no_válido_del_satélite | El tamaño del mensaje no es válido. | |
| satellite_message_coalesced | Se utiliza para realizar un seguimiento de la fusión de mensajes en la capa de red. | |
| registro_de_búfer_circular_de_mensajes_satélite | Registro del búfer circular de mensajes | |
| satellite_message_summary | Información de resumen sobre la mensajería. | |
| incompatibilidad de versión del mensaje satelital | El campo de versión del mensaje no coincide. | |
| mensajería_por_satélite | Se usa para realizar un seguimiento de eventos de mensajería (vincular, desvincular, etc.). | |
| satellite_partial_message | Se utiliza para realizar un seguimiento de los mensajes parciales en la capa de red. | |
| esquema_satélite_recibido | Se activa cuando SQL recibe y lee un mensaje de esquema. | |
| satellite_schema_sent | Se activa cuando el satélite envía un mensaje de esquema. | Se activa solo desde procesos externos. Consulte las instrucciones sobre la colección de eventos desde procesos externos. |
| Inicio del servicio por satélite publicado | Se activa cuando se publica en Launchpad un mensaje de inicio de servicio. | Así se indica a Launchpad que inicie el proceso externo y contiene un id. para la nueva sesión. |
| Se recibió un mensaje inesperado del satélite | Se activa cuando se recibe un mensaje inesperado. | Indica un error. |
| stack_trace | Se produce cuando se solicita un volcado de memoria del proceso. | Indica un error. |
| trace_event | Se utiliza para realizar el seguimiento. | Estos eventos pueden contener mensajes de seguimiento de procesos externos, de Launchpad y de SQL Server. Esto incluye la salida de R a stdout y stderr. |
| launchpad_launch_start | Se activa cuando Launchpad empieza a lanzar un satélite. | Se ejecuta solo desde Launchpad. Consulte las instrucciones sobre la recopilación de eventos desde launchpad.exe. |
| launchpad_resume_sent | Se activa cuando Launchpad ha iniciado el satélite y ha enviado un mensaje de reanudación a SQL Server. | Se activa solo desde Launchpad. Consulte las instrucciones sobre la recopilación de eventos desde launchpad.exe. |
| fragmento_datos_satélite_enviado | Se activa cuando la conexión por satélite termina de enviar un único fragmento de datos. | Contiene información sobre el número de columnas, de filas y de paquetes, así como del tiempo necesitado para enviar el fragmento. |
| satellite_sessionId_mismatch | No se esperaba el identificador de sesión del mensaje |
Recopilar eventos desde procesos externos
SQL Server Machine Learning Services inicia algunos servicios que se ejecutan fuera del proceso de SQL Server. Para capturar eventos relacionados con estos procesos externos, debe crear un archivo de configuración de seguimiento de eventos y colocarlo en el mismo directorio que el archivo ejecutable del proceso.
Importante
A partir de SQL Server 2019, el mecanismo de aislamiento ha cambiado. Por lo tanto, debe conceder los permisos adecuados al directorio donde se almacena el archivo de configuración de seguimiento de eventos. Para más información sobre cómo establecer estos permisos, consulte la sección sobre los permisos de archivo en SQL Server 2019 en Windows: Cambios de aislamiento para Machine Learning Services.
SQL Server Launchpad
Para capturar los eventos relacionados con Launchpad, coloque el archivo .xml en el directorio Binn de la instancia de SQL Server. En una instalación predeterminada, este sería:
C:\Program Files\Microsoft SQL Server\MSSQL_version_number.MSSQLSERVER\MSSQL\Binn.BXLServer es el proceso satélite que admite la extensibilidad de SQL con lenguajes de script externos, como R o Python. Se inicia una instancia independiente de BxlServer para cada instancia de lenguaje externo.
Para capturar los eventos relacionados con BXLServer, coloque el archivo .xml en el directorio de instalación de R o Python. En una instalación predeterminada, este sería:
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.
El archivo de configuración se debe llamar igual que el ejecutable, con el formato "[nombre].xevents.xml". Dicho de otro modo, los archivos deben tener el siguiente nombre:
Launchpad.xevents.xmlbxlserver.xevents.xml
El propio archivo de configuración presenta el siguiente 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 el seguimiento, edite el marcador de posición nombre sesión, el marcador de posición del nombre de archivo (
[SessionName].xel) y los nombres de los eventos que quiere capturar (por ejemplo,[XEvent Name 1],[XEvent Name 1]). - Puede aparecer cualquier cantidad de etiquetas del paquete de eventos, y se recogerán siempre que el atributo name sea correcto.
Ejemplo: Capturar eventos de Launchpad
En el siguiente ejemplo se muestra la definición de un seguimiento de eventos para el servicio 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 el archivo .xml en el directorio Binn de la instancia de SQL Server.
- Este archivo debe tener el nombre
Launchpad.xevents.xml.
Ejemplo: Capturar eventos de BXLServer
En el siguiente ejemplo se muestra la definición de un seguimiento de eventos para el ejecutable 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 el archivo .xml en el mismo directorio que el ejecutable BXLServer.
- Este archivo debe tener el nombre
bxlserver.xevents.xml.