Serwisanci dostępni teraz · czynne całą dobę, także w weekendy i świętaWarszawa i okolice · dojazd bezpłatny
Darmowa diagnoza laptopa
Darmowa diagnoza laptopa
Dojazd do klienta bezpłatnie
Dojazd do klienta bezpłatnie
Laptopy zastępcze bezpłatnie
Laptopy zastępcze bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie
Odbiór i zwrot sprzętu bezpłatnie

sys.dm_xe_session_event_actions

Termin Definicja
sys.dm_xe_session_event_actions

sys.dm_xe_session_event_actions zwraca akcje przypisane do zdarzeń w aktywnej sesji Extended Events.

Rola widoku sys.dm_xe_session_event_actions w SQL Server

sys.dm_xe_session_event_actions jest dynamicznym widokiem zarządzania silnika Microsoft SQL Server. Zwraca informacje o akcjach przypisanych do zdarzeń w aktywnych sesjach Extended Events. Jeden wiersz opisuje powiązanie konkretnej akcji z konkretnym zdarzeniem skonfigurowanym w sesji. Widok nie przedstawia ogólnej listy wszystkich akcji dostępnych w SQL Server, lecz konfigurację akcji należącą do aktualnie uruchomionych sesji.

Akcja w Extended Events jest dodatkową operacją wykonywaną w momencie wystąpienia zdarzenia. Zdarzenie dostarcza podstawowe informacje o sytuacji, na przykład o wykonaniu instrukcji lub zmianie stanu, natomiast akcja może uzupełnić przechwycony rekord o dodatkowe dane. W zależności od konkretnego zdarzenia i dostępnego pakietu akcji może to być między innymi identyfikator sesji, identyfikator bazy danych, nazwa użytkownika albo tekst instrukcji. Przypisanie akcji nie oznacza, że sama akcja wywołuje zdarzenie; określa jedynie informacje zbierane razem z tym zdarzeniem.

Jakie informacje można odczytać

Wynik widoku zawiera identyfikator adresowy sesji zdarzeń oraz dane identyfikujące zdarzenie i akcję. Do rozpoznania elementów konfiguracji służą między innymi nazwy, identyfikatory oraz identyfikatory GUID pakietów, w których zdefiniowano zdarzenie i akcję. Nazwa akcji wskazuje konkretny element dołączony do zdarzenia, a nazwa zdarzenia pozwala ustalić, przy jakim typie aktywności akcja zostanie wykonana. Identyfikator event_session_address można wykorzystać do powiązania wyniku z aktywną sesją zwracaną przez sys.dm_xe_sessions.

Przykładowe zapytanie diagnostyczne może wyglądać następująco:

SELECT s.name AS session_name, a.event_name, a.action_name FROM sys.dm_xe_session_event_actions AS a JOIN sys.dm_xe_sessions AS s ON s.address = a.event_session_address ORDER BY s.name, a.event_name, a.action_name;

Takie zapytanie pokazuje, które akcje są rzeczywiście podpięte do zdarzeń w sesjach aktywnych w chwili wykonania polecenia. Jeżeli sesja nie działa, jej konfiguracja nie będzie dostępna w tym widoku DMV. Definicję sesji zapisaną w metadanych serwera można analizować osobno przez katalogowe widoki Extended Events, w szczególności sys.server_event_sessions, sys.server_event_session_events i sys.server_event_session_actions. Nie należy utożsamiać wyników tych widoków z aktualnym stanem sesji, ponieważ sama definicja może istnieć, ale sesja może być zatrzymana.

Znaczenie akcji dla diagnostyki i wydajności

Odczyt sys.dm_xe_session_event_actions pomaga sprawdzić, czy sesja Extended Events zbiera informacje potrzebne do diagnozy. Ma to znaczenie wtedy, gdy w pliku docelowym lub buforze pierścieniowym brakuje danych, mimo że samo zdarzenie występuje. Przyczyną może być brak odpowiedniej akcji w konfiguracji, przypisanie jej tylko do innego zdarzenia albo uruchomienie innej sesji niż ta, którą administrator analizuje. Widok pozwala zweryfikować konfigurację bez zgadywania na podstawie samej nazwy sesji.

Akcje są wykonywane przy obsłudze wystąpień zdarzeń, dlatego ich liczba i rodzaj mogą wpływać na koszt przechwytywania. Dodanie akcji dostarczającej obszerne informacje, takiej jak pełny tekst instrukcji, może zwiększyć ilość danych zapisywanych przez sesję. Z tego powodu konfigurację należy oceniać razem z częstotliwością zdarzeń, predykatami filtrującymi oraz typem celu sesji. Sam widok sys.dm_xe_session_event_actions nie mierzy narzutu wydajności i nie pokazuje liczby uruchomień akcji; służy do kontroli przypisań zapisanych w aktywnej konfiguracji.

W praktyce warto porównać listę akcji z celem diagnostycznym sesji. Jeśli celem jest ustalenie, która sesja wykonuje daną instrukcję, potrzebna jest akcja dostarczająca identyfikator sesji. Jeśli analiza dotyczy konkretnej bazy, przydatna może być akcja z identyfikatorem bazy danych, o ile jest dostępna dla danego zdarzenia i wersji SQL Server. Nie wolno zakładać, że każda akcja może zostać przypisana do każdego zdarzenia. Zgodność akcji ze zdarzeniem wynika z modelu Extended Events oraz definicji pakietów używanych przez daną instalację SQL Server.

Kontrola konfiguracji aktywnej sesji

Podczas diagnostyki należy najpierw ustalić nazwę i stan sesji w sys.dm_xe_sessions, a następnie sprawdzić jej zdarzenia i akcje. Brak wierszy w sys.dm_xe_session_event_actions może oznaczać, że żadna aktywna sesja nie ma skonfigurowanych akcji, że badana sesja jest zatrzymana albo że zapytanie zostało wykonane w innym kontekście niż oczekiwany. Nie jest to automatycznie dowód, że Extended Events nie działa. Trzeba jeszcze sprawdzić aktywne sesje, zdarzenia oraz konfigurację zapisaną w katalogowych widokach serwera.

Widok jest przeznaczony do odczytu stanu silnika i nie zmienia konfiguracji sesji. Do modyfikowania sesji Extended Events używa się instrukcji CREATE EVENT SESSION lub ALTER EVENT SESSION, wraz z klauzulami dodającymi zdarzenia i akcje, a następnie uruchamia albo zatrzymuje sesję odpowiednią instrukcją. Po zmianie konfiguracji ponowny odczyt DMV pozwala potwierdzić, czy oczekiwane przypisanie pojawiło się w aktywnej sesji. W środowisku SQL Server jest to przydatny etap weryfikacji przed interpretacją zebranych danych i przed uznaniem, że brak określonego pola wynika z błędu aplikacji lub samego silnika.

Przy serwisowej analizie komputera, na którym działa SQL Server, warto rozdzielić problem konfiguracji Extended Events od problemu sprzętowego. Błędne lub niepełne dane w sesji mogą wynikać z ustawień zdarzeń i akcji, natomiast spadki wydajności, błędy pamięci masowej albo niestabilność systemu wymagają odrębnej diagnostyki laptopa, komputera PC i jego podzespołów.

+48 22 100 48 29Zadzwoń teraz · serwisant w 1 godzinę