Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к: SQL Server 2016 (13.x) и более поздним версиям
Управляемый экземпляр SQL Azure
Сведения о том, как использовать расширенные события для мониторинга операций, относящихся к службам машинного обучения SQL Server, панели запуска SQL Server и внешним скриптам заданий Python или R, а также устранять связанные с такими операциями неполадки.
Расширенные события для служб машинного обучения SQL Server
Чтобы просмотреть список событий, связанных со службами машинного обучения SQL Server, выполните следующий запрос в SQL Server Management Studio (SSMS),расширение MSSQL для Visual Studio Code, sqlcmd или любимое средство запросов T-SQL.
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';
Дополнительные сведения об использовании расширенных событий см. в статье Средства расширенных событий.
Дополнительные события, относящиеся к службам машинного обучения
Дополнительные расширенные события доступны для компонентов, связанных со службами машинного обучения SQL Server и используемых ими, таких как SQL Server Launchpad, BXLServer, а также сателлитный процесс, который запускает среду выполнения Python или R. Такие дополнительные расширенные события вызываются из внешних процессов и, соответственно, должны записываться внешней служебной программой.
Дополнительные сведения см. в разделе Сбор событий из внешних процессов.
Таблица расширенных событий
| Мероприятие | Описание | Примечания |
|---|---|---|
| Принять подключение | Происходит при принятии нового подключения. Это событие регистрирует все попытки подключения. | |
| failed_launching | Сбой при запуске. | Указывает на ошибку. |
| спутник_прервать_соединение | Прервать запись о подключении | |
| Получен сигнал прерывания спутниковой связи | Срабатывает при получении сообщения об отмене по спутниковому соединению. | |
| Команда прерывания спутника отправлена | Срабатывает при отправке сообщения о прерывании по спутниковому соединению. | |
| Завершение аутентификации спутника | Срабатывает при завершении проверки подлинности для подключения по TCP или именованному каналу. | |
| satellite_authorization_completion | Возникает при завершении авторизации для подключения по протоколу TCP или через именованный канал. | |
| очистка_спутника | Срабатывает, когда вызовы satellite запускают очистку. | Активируется только внешним процессом. См. инструкции по сбору событий из внешних процессов. |
| фрагмент спутниковых данных отправлен | Срабатывает, когда спутниковое соединение завершает отправку одного блока данных. | При отправке фрагмента данных событие сообщает число строк, столбцов, использованных пакетов SNI и затраченное время в миллисекундах. Эти сведения помогут вам понять, сколько времени потрачено при передаче различных типов данных и сколько пакетов использовано. |
| завершение_получения_спутниковых_данных | Срабатывает, когда все данные, необходимые для запроса, получены через спутниковое соединение. | Активируется только внешним процессом. См. инструкции по сбору событий из внешних процессов. |
| завершение_отправки_спутниковых_данных | Срабатывает, когда все необходимые для сеанса данные отправлены через спутниковое соединение. | |
| Начало отправки спутниковых данных | Срабатывает при начале передачи данных. | Передача данных начинается непосредственно перед отправкой первого блока данных. |
| ошибка_спутника | Используется для трассировки ошибки SQL Satellite. | |
| satellite_invalid_sized_message | Недопустимый размер сообщения. | |
| satellite_message_coalesced | Используется для трассировки сообщений, объединяющихся на сетевом уровне. | |
| запись кольцевого буфера спутниковых сообщений | Запись в кольцевом буфере сообщений. | |
| satellite_message_summary | Сводные сведения об обмене сообщениями. | |
| несоответствие версии сообщения спутника | Поля версии сообщения не совпадают. | |
| спутниковые_сообщения | Используется для трассировки событий при обмене сообщениями (привязка, отмена привязки и т. д.). | |
| satellite_partial_message | Используется для трассировки неполных сообщений на сетевом уровне. | |
| Схема спутника получена | Срабатывает, когда SQL получает и считывает сообщение схемы. | |
| схема_спутника_отправлена | Срабатывает, когда спутник отправляет сообщение схемы. | Активируется только внешним процессом. См. инструкции по сбору событий из внешних процессов. |
| satellite_service_start_posted | Срабатывает, когда на панели запуска публикуется сообщение о запуске службы. | Это событие содержит идентификатор для нового сеанса и указывает панели запуска на запуск внешнего процесса. |
| Получено неожиданное сообщение со спутника | Срабатывает при получении неожиданного сообщения. | Указывает на ошибку. |
| stack_trace | Возникает при выполнении запроса на создание дампа памяти процесса. | Указывает на ошибку. |
| trace_event | Используется для целей трассировки | Эти события могут содержать сообщения трассировки SQL Server, Launchpad и внешних процессов. К ним относится вывод в stdout и stderr из кода R. |
| launchpad_launch_start | Срабатывает, когда стартовая площадка начинает запуск спутника. | Активируется только на панели запуска. См. инструкции по сбору событий из launchpad.exe. |
| Отправлена команда на возобновление Launchpad. | Срабатывает, когда Launchpad запустило спутник и отправило SQL Server сообщение о возобновлении. | Активируется только на панели запуска. См. инструкции по сбору событий из launchpad.exe. |
| фрагмент спутниковых данных отправлен | Срабатывает, когда спутниковое соединение завершает отправку одного блока данных. | Содержит сведения о количестве столбцов, строк, пакетов и продолжительности отправки блока данных. |
| satellite_sessionId_mismatch | Идентификатор сеанса сообщения не ожидается. |
Сбор событий из внешних процессов
Службы машинного обучения SQL Server запускают некоторые службы, которые выполняются вне процесса SQL Server. Чтобы записывать события, связанные с этими внешними процессами, необходимо создать файл конфигурации трассировки событий и поместить его в тот же каталог, в котором находится исполняемый файл для процесса.
Внимание
Начиная с версии SQL Server 2019 механизм изоляции изменился. Поэтому необходимо предоставить соответствующие разрешения для каталога, в котором хранится файл конфигурации трассировки событий. Дополнительные сведения о настройке этих разрешений см. в разделе "Разрешения файлов" в SQL Server 2019 в Windows: изменения изоляции для служб машинного обучения.
Панель запуска SQL Server
Чтобы фиксировать события, связанные с панелью запуска, поместите файл конфигурации (XML-файл) в каталог Binn экземпляра SQL Server. При стандартной установке это будет:
C:\Program Files\Microsoft SQL Server\MSSQL_version_number.MSSQLSERVER\MSSQL\Binn.BXLServer — это вспомогательный процесс, который поддерживает возможность расширения SQL с помощью внешних языков скриптов, таких как R и Python. Для каждого экземпляра внешнего языка запускается отдельный экземпляр BxlServer.
Чтобы записывать события, связанные с BXLServer, поместите файл конфигурации (XML-файл) в установочный каталог R или Python. При стандартной установке это будет:
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.
Имена файла конфигурации и исполняемого файла должны совпадать и записываться в формате [имя].xevents.xml. Другими словами, имя файла должно выглядеть следующим образом:
Launchpad.xevents.xmlbxlserver.xevents.xml
Файл конфигурации имеет следующий формат:
<?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>
- Чтобы настроить трассировку, измените заполнитель session name, заполнитель для имени файла (
[SessionName].xel) и имена событий, которые требуется записывать (например,[XEvent Name 1],[XEvent Name 1]). - Может появиться любое количество тегов пакетов событий. Все они будут собираться при условии, что атрибут имени правильный.
Пример. Фиксация событий панели запуска
В следующем примере представлено определение трассировки событий для службы панели запуска:
<?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>
- Поместите XML-файл в каталог Binn экземпляра SQL Server.
- Этот файл должен иметь имя
Launchpad.xevents.xml.
Пример. Фиксация событий BXLServer
В следующем примере представлено определение трассировки событий для исполняемого файла 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>
- Поместите XML-файл в тот же каталог, в котором находится исполняемый файл BXLServer.
- Этот файл должен иметь имя
bxlserver.xevents.xml.