Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a: SQL Server 2016 (13.x) e versioni
successive di Istanza gestita di SQL di Azure
Informazioni su come usare gli eventi estesi per monitorare le operazioni e risolvere i problemi relativi a SQL Server Machine Learning Services, SQL Server Launchpad e agli script esterni Python o R.
Eventi estesi di SQL Server Machine Learning Services
Per visualizzare un elenco di eventi correlati a Machine Learning Services per SQL Server, eseguire la query seguente in SQL Server Management Studio (SSMS),l'estensione MSSQL per Visual Studio Code, sqlcmd o lo strumento di query T-SQL preferito.
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';
Per altre informazioni su come usare gli eventi estesi, vedere Strumenti degli eventi estesi.
Eventi aggiuntivi specifici di Machine Learning Services
Sono disponibili eventi estesi aggiuntivi per i componenti correlati a e usati da SQL Server Machine Learning Services, ad esempio SQL Server Launchpad, BXLServer e il processo satellite che avvia il runtime di Python o R. Questi eventi estesi aggiuntivi vengono attivati dai processi esterni e devono quindi essere acquisiti usando un'utilità esterna.
Per altre informazioni su come eseguire questa operazione, vedere Raccolta di eventi da processi esterni.
Tabella degli eventi estesi
| Evento | Descrizione | Note |
|---|---|---|
| accetta_connessione | Si verifica quando viene accettata una nuova connessione. Questo evento viene usato per registrare tutti i tentativi di connessione. | |
| avvio_non riuscito | Avvio non riuscito. | Indica un errore. |
| satellite_interrompi_connessione | Registrazione dell'interruzione della connessione | |
| satellite_abort_received | Si attiva quando viene ricevuto un messaggio di annullamento tramite una connessione satellitare. | |
| satellite_abort_sent | Si attiva quando viene inviato un messaggio di interruzione tramite una connessione satellitare. | |
| completamento_autenticazione_satellitare | Generato quando viene completata l'autenticazione per una connessione su TCP o Named pipe. | |
| autorizzazione satellite completata | Si attiva quando viene completata l'autorizzazione per una connessione tramite TCP o pipe denominata. | |
| satellite_cleanup | Si attiva quando il satellite richiama la routine di pulizia. | Generato solo da processi esterni. Vedere le istruzioni sulla raccolta di eventi da processi esterni. |
| frammento_di_dati_satellitari_inviato | Si attiva quando la connessione satellitare termina l'invio di un singolo blocco di dati. | L'evento indica il numero di righe inviate, il numero di colonne, il numero di pacchetti SNI usati e il tempo trascorso in millisecondi per l'invio del blocco. Le informazioni possono aiutare a determinare il tempo necessario per passare tipi di dati diversi e il numero di pacchetti usati. |
| ricezione_dati_satellitari_completata | Si attiva quando una query riceve tutti i dati richiesti tramite la connessione satellitare. | Generato solo da processi esterni. Vedere le istruzioni sulla raccolta di eventi da processi esterni. |
| completamento_invio_dati_satellitari | Si attiva quando tutti i dati richiesti per una sessione vengono inviati tramite la connessione satellitare. | |
| avvio_invio_dati_satellitari | Si attiva quando si avvia la trasmissione dei dati. | La trasmissione dei dati si avvia poco prima dell'invio del primo blocco di dati. |
| satellite_error | Utilizzato per tracciare gli errori di SQL Satellite. | |
| satellite_invalid_sized_message | La dimensione del messaggio non è valida. | |
| messaggio_satellite_unificato | Usato per tenere traccia dei messaggi che si uniscono a livello di rete. | |
| record del buffer circolare dei messaggi satellitari | Record del buffer circolare dei messaggi | |
| riepilogo del messaggio satellitare | Informazioni di riepilogo sui messaggi. | |
| mancata corrispondenza della versione del messaggio satellite | Il campo della versione del messaggio non corrisponde. | |
| messaggistica satellitare | Usato per tenere traccia degli eventi di messaggistica (associazione, annullamento dell'associazione e così via) | |
| messaggio satellitare parziale | Usato per tenere traccia dei messaggi parziali a livello di rete. | |
| satellite_schema_received | Si attiva quando il messaggio di schema viene ricevuto e letto da SQL. | |
| satellite_schema_sent | Si attiva quando il messaggio di schema viene inviato dal satellite. | Generato solo da processi esterni. Vedere le istruzioni sulla raccolta di eventi da processi esterni. |
| Avvio del servizio satellitare registrato | Si attiva quando il messaggio di avvio del servizio viene pubblicato nel Launchpad. | questo evento indica a Launchpad di avviare il processo esterno e contiene un ID per la nuova sessione. |
| Messaggio inatteso ricevuto dal satellite | Si attiva quando viene ricevuto un messaggio non previsto. | Indica un errore. |
| stack_trace | Si verifica quando viene richiesto un dump di memoria del processo. | Indica un errore. |
| trace_event | Usato a scopo di monitoraggio | Questi eventi possono contenere SQL Server, Launchpad e i messaggi di traccia dei processi esterni. Questi includono l'output in stdout e stderr da R. |
| launchpad_launch_start | Si attiva quando Launchpad inizia il lancio di un satellite. | Avviato solo da Launchpad. Vedere le istruzioni sulla raccolta di eventi da launchpad.exe. |
| launchpad_resume_sent | Si attiva quando Launchpad ha avviato il satellite e ha inviato un messaggio di ripresa a SQL Server. | Attivato solo da Launchpad. Vedere le istruzioni sulla raccolta di eventi da launchpad.exe. |
| frammento_di_dati_satellitari_inviato | Si attiva quando la connessione satellitare termina l'invio di un singolo blocco di dati. | Contiene informazioni sul numero di colonne, numero di righe, numero di pacchetti e sul tempo impiegato per l'invio del blocco. |
| satellite_sessionId_mismatch | L'ID della sessione del messaggio non è previsto |
Raccolta di eventi da processi esterni
Machine Learning Services per SQL Server avvia alcuni servizi che vengono eseguiti all'esterno del processo di SQL Server. Per acquisire gli eventi correlati a questi processi esterni, è necessario creare un file di configurazione per la traccia degli eventi e inserire il file nella stessa directory del file eseguibile per il processo.
Importante
A partire da SQL Server 2019, il meccanismo di isolamento è stato modificato. È quindi necessario assegnare le autorizzazioni appropriate alla directory in cui è archiviato il file di configurazione della traccia degli eventi. Per altre informazioni su come impostare queste autorizzazioni, consultare la sezione Autorizzazioni dei file in SQL Server 2019 su Windows: Modifiche all'isolamento per i servizi di Machine Learning.
Launchpad di SQL Server
Per acquisire gli eventi correlati a Launchpad, posizionare il file con estensione xml nella directory Binn per l'istanza di SQL Server. In un'installazione standard, questo sarebbe:
C:\Program Files\Microsoft SQL Server\MSSQL_version_number.MSSQLSERVER\MSSQL\Binn.BXLServer è il processo satellite che supporta l'estendibilità di SQL con linguaggi di script esterni, come R o Python. Un'istanza separata di BxlServer viene avviata per ogni istanza del linguaggio esterno.
Per acquisire gli eventi correlati a BXLServer, posizionare il file con estensione xml nella directory di installazione di R o Python. In un'installazione predefinita, sarebbe:
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.
Il file di configurazione deve avere lo stesso nome del file eseguibile, con il formato "[nome].xeventi.xml". In altre parole, i file devono essere denominati come segue:
Launchpad.xevents.xmlbxlserver.xevents.xml
Il file di configurazione presenta il formato seguente:
<?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>
- Per configurare la traccia, modificare il segnaposto session name, il segnaposto per il nome del file (
[SessionName].xel) e i nomi degli eventi da acquisire, ad esempio[XEvent Name 1]o[XEvent Name 1]. - Può comparire qualsiasi numero di tag event package e verranno raccolti purché l'attributo name sia corretto.
Esempio: Rilevamento degli eventi di Launchpad
L'esempio seguente illustra la definizione della traccia degli eventi per il servizio 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>
- Posizionare il file con estensione xml nella directory Binn per l'istanza di SQL Server.
- Il nome del file deve essere
Launchpad.xevents.xml.
Esempio: Acquisizione degli eventi di BXLServer
L'esempio seguente illustra la definizione di una traccia di eventi per l'eseguibile di 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>
- Posizionare il file con estensione xml nella stessa directory dell'eseguibile di BXLServer.
- Il nome del file deve essere
bxlserver.xevents.xml.