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

SQL Trace

Termin Definicja
SQL Trace

SQL Trace to starszy mechanizm rejestrowania zdarzeń serwera, stopniowo wypierany przez Extended Events.

Czym jest SQL Trace w Microsoft SQL Server

SQL Trace to mechanizm diagnostyczny wbudowany w Microsoft SQL Server, służący do przechwytywania określonych zdarzeń zachodzących w aparacie bazy danych. Rejestrowane informacje mogą dotyczyć między innymi uruchamiania instrukcji Transact-SQL, procedur składowanych, logowania użytkowników, blokad, błędów, zmian uprawnień oraz operacji wykonywanych przez silnik. SQL Trace nie zapisuje automatycznie całej aktywności serwera. Administrator tworzy konfigurację śledzenia, wybierając klasy zdarzeń, kolumny danych i ewentualne filtry.

W SQL Server funkcjonują dwa podstawowe sposoby korzystania z tego mechanizmu. SQL Server Profiler udostępnia graficzny interfejs do tworzenia i obserwowania śledzenia, natomiast śledzenie po stronie serwera można skonfigurować za pomocą systemowych procedur składowanych. Trace może przekazywać dane do pliku śledzenia z rozszerzeniem .trc, który następnie da się analizować w Profilerze albo odczytać funkcją tabelaryczną fn_trace_gettable. Śledzenie serwerowe działa niezależnie od zamknięcia okna Profiler, dlatego jest właściwsze do zaplanowanych testów i krótkich sesji diagnostycznych.

Konfiguracja zdarzeń, kolumn i filtrów

Konfiguracja SQL Trace opiera się na zestawie procedur systemowych. sp_trace_create tworzy śledzenie i określa między innymi plik docelowy oraz maksymalny rozmiar pliku. sp_trace_setevent dodaje do konfiguracji konkretną klasę zdarzeń i wskazane kolumny, takie jak czas rozpoczęcia, nazwa aplikacji, nazwa bazy danych, identyfikator procesu serwera, tekst instrukcji lub nazwa logowania. sp_trace_setfilter ogranicza zbierane rekordy według wartości wybranej kolumny, a sp_trace_setstatus uruchamia, zatrzymuje albo zamyka śledzenie.

Takie zawężenie ma znaczenie praktyczne, ponieważ rejestrowanie zbyt wielu zdarzeń zwiększa ilość danych i może obciążać serwer. Przykładowo, podczas badania wolnych zapytań można ograniczyć śledzenie do konkretnej bazy, aplikacji, użytkownika lub czasu trwania operacji. Sam tekst zapytania nie zawsze wystarcza do oceny problemu: przydatne są także informacje o czasie rozpoczęcia, czasie zakończenia, liczbie odczytów logicznych, liczbie zapisów oraz identyfikatorze sesji. Zakres dostępnych kolumn zależy od wybranej klasy zdarzenia, więc nie każda kolumna jest dostępna dla każdego typu operacji.

SQL Server Profiler i analiza plików .trc

SQL Server Profiler prezentuje zdarzenia w formie tabeli, dzięki czemu można obserwować kolejność operacji, identyfikować powtarzające się instrukcje i sprawdzać, które sesje generują określony ruch. Narzędzie pozwala korzystać z szablonów śledzenia, między innymi do monitorowania aktywności, procedur składowanych lub operacji związanych z wydajnością. Szablon jest tylko punktem wyjścia: przed uruchomieniem śledzenia należy sprawdzić wybrane zdarzenia, kolumny i filtry, ponieważ gotowa konfiguracja może rejestrować więcej danych, niż jest potrzebne w konkretnym przypadku.

Plik .trc można analizować po zakończeniu sesji, co ułatwia porównanie zachowania serwera przed zmianą konfiguracji i po niej. Przy interpretacji wyników trzeba rozróżniać faktycznie wykonane instrukcje od zdarzeń pomocniczych oraz brać pod uwagę, że jeden proces aplikacji może otwierać wiele sesji. SQL Trace nie jest mechanizmem pełnego audytu wszystkich aspektów działania systemu. Nie zastępuje też planu wykonania zapytania, statystyk wydajności ani analizy blokad. Jego zadaniem jest pokazanie wybranych zdarzeń wraz z metadanymi, które pomagają ustalić, co wydarzyło się na serwerze.

Dlaczego SQL Trace jest zastępowany przez Extended Events

SQL Trace i SQL Server Profiler są w dokumentacji Microsoft SQL Server oznaczone jako technologie przestarzałe, czyli przeznaczone do zastąpienia w przyszłych rozwiązaniach. Nie oznacza to, że każde istniejące śledzenie przestaje działać natychmiast. Oznacza natomiast, że przy projektowaniu nowej diagnostyki należy preferować Extended Events. Ten mechanizm został wprowadzony w SQL Server 2008 i zapewnia model zdarzeń oraz działań pozwalający dokładniej określać, jakie informacje mają zostać przechwycone i gdzie mają być zapisane.

Extended Events mogą zapisywać dane między innymi do celu event_file, który tworzy pliki przeznaczone do późniejszej analizy, albo do ring_buffer, przechowującego ograniczony bufor w pamięci. Mechanizm obsługuje predykaty, dodatkowe dane zdarzeń i sesje, które można uruchamiać oraz zatrzymywać niezależnie od narzędzia graficznego. Przy migracji należy odtworzyć rzeczywisty cel starego śledzenia: wybrać odpowiedniki zdarzeń, dodać wymagane pola, ustawić filtry i sprawdzić, czy wyniki zawierają informacje potrzebne do diagnozy. SQL Trace pozostaje użyteczny przy utrzymaniu starszych procedur i konfiguracji, ale nie powinien być domyślnym wyborem dla nowych wdrożeń diagnostycznych.

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