Najważniejsze założenia XEvents'ów:
- zbieranie informacji (mniej lub więcej w zależności od potrzeb) niezbędnych do monitoringu, identyfikacji lub rozwiązywania problemów wydajności na serwerze (wg MS ma to zastępować Profilera)
- wysoce konfigurowalne, lekkie obciążenie i skalowalne
- dane logów zapisywane w sesjach zrzut do pliku, ew. w ring buffer
Aby zebrać dane należy przejść w MngStudio:
Management/Extended Events/Sessions i PPM wybrać New Sessions Wizard
Kroki kreatora sesji:
1. Introducions (wstęp co to jest za narzędzie)
2. Set Session Properties (wprowadź nazwę sesji i włącz czy ma się uruchamiać przy starcie serwera)
3. Choose Template (MS ma kilka wybudowanych szablonów w zależności od tego co mierzymy)
a) Locks and Blocks
b) Profiler Equivalents
c) Query Executions
d) System Monitoring
e) User Templates
4) Select Events To Capture (tu wybieramy zdarzenia, które chcemy gromadzić, w związku z tym, że jest ich multum, w tym przykładzie biorę tylko zdarzenie login z kategorii session, kanał Analytic z paczki sqlserver. Zdarzenie to ma kilka wierszy danych stanowiących zbiór tego zdarzenia, jak na screenie)
![]() | ||||
XEvents - wybór zdarzeń jakie chcemy logować |
5) Capture Global Fields (wybieramy dodatkowe pola (akcje) jakie chcemy gromadzić, będą to systemowe akcje, które możemy wrzucić na tzw. dokładkę, aby mieć powiązanie z naszymi wcześniejszymi danymi np. client_pid etc.)
6) Set Session Event Filters (ciekawa opcja, gdzie możemy zawęzić wybór danych, dot. danej bazy, danego użytkownika, tu w zależności od kolekcjonowania danych możemy robić na nich dowolne filtry)
7) Specify Ssession Data Storage (wrzut do loga i jak chcemy gromadzić dane, wszystko czy ostatnie logi)
8) Summary (podsumowanie wizarda)
9) Create Event Session (potwierdzenie wyboru i uruchomienie)
Czytanie logów
SELECT event_data = CONVERT(XML, event_data)
FROM sys.fn_xe_file_target_read_file(N'Y:\XEventsLogs\aaaa*.xel', NULL, NULL, NULL);
ew. klikając
Pod stworzoną sesją XEvents wybierając PPM View Target Data...