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

Event File

Termin Definicja
Event File

Event File to cel sesji rozszerzonych zdarzeń, zapisujący zarejestrowane dane bezpośrednio do pliku na dysku.

Event File w SQL Server Extended Events

Event File jest docelowym mechanizmem sesji Extended Events w Microsoft SQL Server. Jego zadaniem jest zapis odebranych zdarzeń i związanych z nimi danych do plików na dysku, zamiast przechowywania wyników wyłącznie w pamięci serwera albo prezentowania ich w interfejsie graficznym. Pliki tworzone przez ten cel mają rozszerzenie .xel. Zawierają między innymi nazwę zdarzenia, czas jego wystąpienia, identyfikator sesji, informacje o bazie danych oraz wartości zebranych pól i akcji, zależnie od konfiguracji sesji.

Event File jest konfigurowany jako target, czyli miejsce odbioru danych z konkretnej sesji Extended Events. Sam target nie definiuje, jakie zdarzenia mają być przechwytywane. Za wybór zdarzeń odpowiadają klauzule ADD EVENT, a za ograniczenie zakresu danych filtr WHERE. Dzięki rozdzieleniu tych funkcji można na przykład rejestrować tylko błędy o określonym numerze, zapytania przekraczające ustalony czas trwania albo aktywność wybranej aplikacji. Event File zapisuje wynik takiej selekcji w formacie przeznaczonym do późniejszego odczytu przez SQL Server.

Konfiguracja pliku, rozmiaru i rotacji

Target Event File konfiguruje się w definicji sesji, na przykład w postaci ADD TARGET package0.event_file (SET filename = N'C:\XE\diagnostyka.xel', max_file_size = (50), max_rollover_files = (4)). Parametr filename wskazuje podstawową nazwę pliku. Wartość max_file_size określa maksymalny rozmiar pojedynczego pliku w megabajtach, natomiast max_rollover_files ogranicza liczbę przechowywanych plików z rotacji. Dokładne opcje mogą zależeć od wersji SQL Server i dostępnych właściwości targetu, dlatego konfigurację trzeba sprawdzić w dokumentacji używanej wersji oraz w metadanych instancji.

Przy przekroczeniu ustalonego rozmiaru SQL Server może zamknąć bieżący plik i rozpocząć zapis do kolejnego pliku rotacyjnego. Ograniczenie liczby plików ma znaczenie praktyczne, ponieważ niekontrolowane rejestrowanie zdarzeń może szybko zająć miejsce na woluminie. Nazwa i katalog muszą być dostępne dla konta usługi SQL Server, a nie tylko dla użytkownika uruchamiającego SQL Server Management Studio. Jeżeli katalog nie istnieje albo konto usługi nie ma odpowiednich uprawnień do zapisu, sesja może nie dostarczać danych do Event File mimo poprawnej składni definicji.

Wybór lokalizacji powinien uwzględniać obciążenie operacjami wejścia-wyjścia, dostępną przestrzeń i sposób wykonywania kopii zapasowych. Plik diagnostyczny nie powinien być umieszczany przypadkowo na partycji, na której brak wolnego miejsca mógłby wpłynąć na działanie baz danych. Jednocześnie zbyt agresywne ograniczenie rozmiaru lub liczby plików może spowodować utratę starszych informacji potrzebnych do porównania zdarzeń w czasie. Event File nie zastępuje więc polityki retencji; jest technicznym mechanizmem zapisu, którego parametry trzeba dobrać do celu sesji.

Odczyt danych z plików XEL

Dane zapisane przez Event File można analizować funkcją tabelaryczną sys.fn_xe_file_target_read_file. Typowe zapytanie odczytujące plik ma postać SELECT object_name, CONVERT(xml, event_data) AS event_data FROM sys.fn_xe_file_target_read_file(N'C:\XE\diagnostyka*.xel', NULL, NULL, NULL). Kolumna object_name identyfikuje nazwę zdarzenia, a event_data zawiera jego dane w formacie XML. Użycie wzorca w nazwie pozwala objąć analizą pliki podstawowe i pliki utworzone podczas rotacji.

XML trzeba interpretować zgodnie ze strukturą konkretnego zdarzenia. Nazwy elementów odpowiadają polom zdarzenia lub akcjom dołączonym podczas konfiguracji sesji, dlatego nie każde zdarzenie będzie zawierało te same informacje. Przykładowo czas trwania zapytania może być dostępny tylko wtedy, gdy dane zdarzenie udostępnia odpowiednie pole, a tekst instrukcji lub nazwa hosta może wymagać jawnego dodania akcji. Sam fakt istnienia pliku XEL nie oznacza, że zapisano w nim wszystkie dane potrzebne do późniejszej diagnozy.

Definicję sesji można sprawdzać w widokach katalogowych, takich jak sys.server_event_sessions, a jej stan działania w sys.dm_xe_sessions. Pozwala to rozróżnić kilka sytuacji: sesja może istnieć, ale być zatrzymana; może działać, lecz nie otrzymywać zdarzeń z powodu filtra; albo może rejestrować zdarzenia, lecz nie zapisywać ich z powodu problemu z katalogiem docelowym. Przy analizie należy także uwzględnić pełną ścieżkę oraz wzorzec nazwy, ponieważ odczyt niewłaściwego pliku może dać pusty wynik bez wskazania błędu logicznego w samej sesji.

Kontrola wiarygodności zapisu i diagnostyka sesji

Event File jest przydatny wtedy, gdy trzeba zachować materiał diagnostyczny do późniejszego porównania, filtrowania lub przekazania osobie analizującej działanie instancji SQL Server. Zapis na dysku utrzymuje dane po zamknięciu narzędzia obserwującego sesję, a pliki mogą obejmować zdarzenia z wielu minut lub godzin, zależnie od intensywności ruchu i ustawionej retencji. Nie jest to jednak gwarancja zarejestrowania każdej operacji. Selekcja zdarzeń, predykaty, akcje i ustawienia utraty zdarzeń wpływają na to, jaki obraz działania serwera znajdzie się w pliku.

Podczas weryfikacji warto sprawdzić, czy sesja została uruchomiona poleceniem ALTER EVENT SESSION ... ON SERVER STATE = START, czy ścieżka wskazana w targetcie jest prawidłowa oraz czy pojawiają się nowe pliki lub zmienia się ich rozmiar. Należy również porównać czas zdarzeń zapisany w XML z czasem systemowym i czasem wystąpienia badanego problemu. Pusty lub nieaktualny Event File może wynikać z zatrzymanej sesji, niepasującego filtra, braku uprawnień do katalogu, pełnego woluminu albo odczytu innego zestawu plików niż ten używany przez aktywną sesję.

W przypadku problemów z analizą trzeba najpierw zabezpieczyć istniejące pliki XEL przed rotacją, a następnie sprawdzić konfigurację bez niepotrzebnego rozszerzania zakresu rejestrowania. Zbyt szeroka sesja może generować duży strumień danych, zwiększać obciążenie zapisu i utrudniać wyszukanie właściwego zdarzenia. Rzetelna diagnostyka polega na powiązaniu konfiguracji targetu z definicją zdarzeń, stanem sesji, uprawnieniami systemu plików i rzeczywistą zawartością XML, a nie tylko na stwierdzeniu, że plik o rozszerzeniu .xel istnieje.

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