Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: SQL Server 2016 (13.x) i nowsze wersje
usługi Azure SQL Managed Instance
Dowiedz się, jak używać zdarzeń rozszerzonych do monitorowania i rozwiązywania problemów operacji związanych z usługami SQL Server Machine Learning Services, programem SQL Server Launchpad i zewnętrznymi skryptami zadań języka Python lub R.
Zdarzenia rozszerzone dla usług SQL Server Machine Learning Services
Aby wyświetlić listę zdarzeń związanych z usługami SQL Server Machine Learning Services, uruchom następujące zapytanie w programie SQL Server Management Studio (SSMS),rozszerzeniu MSSQL dla programu Visual Studio Code, sqlcmd lub ulubionym narzędziu do wykonywania zapytań 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';
Aby uzyskać więcej informacji na temat używania zdarzeń rozszerzonych, zobacz Narzędzia zdarzeń rozszerzonych.
Dodatkowe zdarzenia specyficzne dla usług Machine Learning Services
Dodatkowe zdarzenia rozszerzone są dostępne dla składników, które są związane z usługami SQL Server Machine Learning Services, takimi jak sql Server Launchpad i BXLServer, oraz proces satelitarny, który uruchamia środowisko uruchomieniowe języka Python lub R. Te dodatkowe zdarzenia rozszerzone są wyzwalane z procesów zewnętrznych; dlatego należy je przechwycić przy użyciu narzędzia zewnętrznego.
Aby uzyskać więcej informacji o tym, jak to zrobić, zobacz sekcję Zbieranie zdarzeń z procesów zewnętrznych.
Tabela zdarzeń rozszerzonych
| Event | Description | Notatki |
|---|---|---|
| akceptacja_połączenia | Występuje po zaakceptowaniu nowego połączenia. To zdarzenie służy do rejestrowania wszystkich prób połączenia. | |
| nieudane_uruchomienie | Uruchamianie nie powiodło się. | Wskazuje błąd. |
| przerwij_połączenie_satellite | Przerwanie zapisu połączenia | |
| odebrane_przerwanie_satellitarne | Wystrzeliwa po odebraniu komunikatu przerwania za pośrednictwem połączenia satelitarnego. | |
| satellite_abort_sent | Uruchamia się, gdy komunikat przerwania jest wysyłany przez połączenie satelitarne. | |
| zakończenie_uwierzytelnienia_satelitarnego | Uruchamia się po zakończeniu uwierzytelniania dla połączenia za pośrednictwem protokołu TCP lub nazwanego potoku. | |
| zakończenie_autoryzacji_sateltitarnej | Uruchamia się po zakończeniu autoryzacji dla połączenia za pośrednictwem protokołu TCP lub nazwanego potoku. | |
| oczyszczanie satelitarne | Aktywuje się, gdy satelita wywołuje czyszczenie. | Wyzwolone tylko z procesu zewnętrznego. Zobacz instrukcje dotyczące zbierania zdarzeń z procesów zewnętrznych. |
| kawałek_danych_satelitarnych_wysłany | Uruchamia się, gdy połączenie satelitarne zakończy wysyłanie pojedynczego fragmentu danych. | Zdarzenie zgłasza liczbę wysłanych wierszy, liczbę kolumn, liczbę użytych pakietów SNI i czas, który upłynął w milisekundach podczas wysyłania fragmentu. Informacje te mogą pomóc zrozumieć, ile czasu poświęca się na przekazywanie różnych typów danych i ile pakietów jest używanych. |
| ukończenie odbioru danych satelitarnych | Uruchamia się, gdy dane wymagane przez zapytanie są odbierane przez połączenie satelitarne. | Wyzwolone tylko z procesu zewnętrznego. Zobacz instrukcje dotyczące zbierania zdarzeń z procesów zewnętrznych. |
| zakończenie_wysyłania_danych_satelitarnych | Uruchamia się, gdy wszystkie wymagane dane dla sesji są wysyłane przez połączenie satelitarne. | |
| rozpocznij_wysyłanie_danych_satellite | Uruchamia się, gdy rozpoczyna się transmisja danych. | Przesyłanie danych rozpoczyna się tuż przed wysłaniem pierwszego fragmentu danych. |
| błąd satelity | Służy do śledzenia błędu satelity SQL | |
| wiadomość_o_nieprawidłowym_rozmiarze_satelity | Rozmiar wiadomości jest nieprawidłowy | |
| wiadomość_satellitarna_zjednoczona | Służy do śledzenia łączenia komunikatów w warstwie sieci | |
| wiadomość_satelitarna_pierścieniowy_bufor_zapis | rekord buforu pierścienia komunikatów | |
| podsumowanie wiadomości satelitarnych | podsumowanie informacji o komunikatach | |
| niedopasowanie_wersji_komunikatu_satelitarnego | Pole wersji komunikatu nie jest zgodne | |
| satellite_messaging (komunikacja satelitarna) | Służy do śledzenia zdarzeń związanych z komunikatami (wiązanie, odwiązywanie itp.) | |
| wiadomość_częściowa_satellite | Służy do śledzenia częściowego komunikatu w warstwie sieci | |
| schemat_satelity_odebrano | Uruchamia się, gdy komunikat schematu jest odbierany i odczytywany przez program SQL. | |
| schemat_satellity_wysłany | Uruchamia się, gdy komunikat schematu jest wysyłany przez satelitę. | Wyzwolone tylko z procesu zewnętrznego. Zobacz instrukcje dotyczące zbierania zdarzeń z procesów zewnętrznych. |
| rozpoczęcie_świadczenia_usługi_satelitarnej_opublikowane | Uruchamia się po wysłaniu komunikatu o uruchomieniu usługi na launchpad. | To instruuje program Launchpad, aby uruchomił proces zewnętrzny i zawiera identyfikator nowej sesji. |
| wiadomość_nieoczekiwana_od_satellity_otrzymana | Uruchamia się po odebraniu nieoczekiwanego komunikatu. | Wskazuje błąd. |
| stack_trace | Występuje, gdy zażądano zrzutu pamięci procesu. | Wskazuje błąd. |
| śledź_zdarzenie | Używane do celów śledzenia | Te zdarzenia mogą zawierać komunikaty śledzenia SQL Server, Launchpad oraz komunikaty z procesów zewnętrznych. Obejmuje to dane wyjściowe do stdout i stderr z języka R. |
| launchpad_rozpoczęcie_uruchomienia | Wyzwala się, gdy platforma startowa rozpoczyna wystrzeliwanie satelity. | Wyzwolone tylko z Launchpad. Zobacz instrukcje dotyczące zbierania zdarzeń z launchpad.exe. |
| wysłano_życiorys_launchpad | Uruchamia się, gdy launchpad wystrzeli satelitę i prześle komunikat wznowienia do programu SQL Server. | Wyzwolone tylko z Launchpad. Zobacz instrukcje dotyczące zbierania zdarzeń z launchpad.exe. |
| kawałek_danych_satelitarnych_wysłany | Uruchamia się, gdy połączenie satelitarne zakończy wysyłanie pojedynczego fragmentu danych. | Zawiera informacje o liczbie kolumn, liczbie wierszy, liczbie pakietów i czasie, który upłynął podczas wysyłania fragmentu. |
| satellite_sessionId_mismatch | Identyfikator sesji komunikatu nie jest oczekiwany |
Zbieranie zdarzeń z procesów zewnętrznych
Usługi SQL Server Machine Learning Services uruchamiają niektóre usługi, które działają poza procesem programu SQL Server. Aby przechwycić zdarzenia związane z tymi procesami zewnętrznymi, należy utworzyć plik konfiguracji śledzenia zdarzeń i umieścić plik w tym samym katalogu co plik wykonywalny dla tego procesu.
Ważne
Z programu SQL Server 2019 mechanizm izolacji uległ zmianie. W związku z tym należy przyznać odpowiednie uprawnienia do katalogu, w którym jest przechowywany plik konfiguracji śledzenia zdarzeń. Aby uzyskać więcej informacji na temat ustawiania tych uprawnień, zobacz sekcję Uprawnienia do plików w programie SQL Server 2019 w systemie Windows: zmiany izolacji dla usług Machine Learning Services.
SQL Server Launchpad
Aby przechwycić zdarzenia związane z programem Launchpad, umieść plik .xml w katalogu Binn dla wystąpienia programu SQL Server. W domyślnej instalacji będzie to:
C:\Program Files\Microsoft SQL Server\MSSQL_version_number.MSSQLSERVER\MSSQL\Binn.BXLServer to proces satelitarny, który obsługuje rozszerzalność SQL za pomocą języków skryptów zewnętrznych, takich jak R lub Python. Dla każdego wystąpienia języka zewnętrznego jest uruchamiane oddzielne wystąpienie serwera BxlServer.
Aby przechwycić zdarzenia związane z serwerem BXLServer, umieść plik .xml w katalogu instalacyjnym języka R lub Python. W domyślnej instalacji będzie to:
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.
Plik konfiguracji musi mieć taką samą nazwę jak plik wykonywalny, używając formatu "[name].xevents.xml". Innymi słowy, pliki muszą być nazwane w następujący sposób:
Launchpad.xevents.xmlbxlserver.xevents.xml
Sam plik konfiguracji ma następujący format:
<?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>
- Aby skonfigurować ślad, zmodyfikuj symbol zastępczy nazwy sesji , symbol zastępczy nazwy pliku (
[SessionName].xel) i nazwy zdarzeń, które chcesz przechwycić, na przykład[XEvent Name 1],[XEvent Name 1]). - Może pojawić się dowolna liczba tagów pakietu zdarzeń, które będą zbierane, o ile atrybut name jest poprawny.
Przykład: Rejestrowanie zdarzeń Launchpad
W poniższym przykładzie przedstawiono definicję śledzenia zdarzeń dla usługi 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>
- Umieść plik .xml w katalogu Binn dla wystąpienia programu SQL Server.
- Ten plik musi mieć nazwę
Launchpad.xevents.xml.
Przykład: Przechwytywanie zdarzeń BXLServer
Poniższy przykład przedstawia definicję śledzenia zdarzeń dla pliku wykonywalnego 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>
- Umieść plik .xml w tym samym katalogu co plik wykonywalny BXLServer.
- Ten plik musi mieć nazwę
bxlserver.xevents.xml.