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

sqlserver package

Termin Definicja
sqlserver package

sqlserver package to zestaw obiektów Extended Events dostarczany domyślnie przez silnik bazodanowy.

sqlserver package w Extended Events

sqlserver package to wbudowany pakiet obiektów mechanizmu Extended Events w Microsoft SQL Server. Pakiet zawiera definicje zdarzeń i elementów pomocniczych przeznaczonych do obserwowania pracy silnika bazodanowego. W przeciwieństwie do pakietu package0, który udostępnia podstawowe, wspólne obiekty infrastrukturalne, pakiet sqlserver obejmuje zdarzenia specyficzne dla SQL Server, między innymi związane z wykonywaniem zapytań, blokadami, błędami, kompilacją planów i aktywnością sesji.

Informacje o zainstalowanych pakietach można odczytać z widoku dynamicznego sys.dm_xe_packages. Nazwę pakietu można sprawdzić w kolumnie name, a jego opis, identyfikator GUID oraz źródło modułu w pozostałych kolumnach tego widoku. Pakiet jest częścią silnika SQL Server i nie instaluje się go jako oddzielnego dodatku. Dostępne zdarzenia zależą od konkretnej wersji oraz edycji silnika, dlatego konfigurację sesji Extended Events należy zawsze weryfikować na serwerze, na którym ma działać.

Jakie obiekty udostępnia pakiet sqlserver

Najważniejszymi obiektami pakietu są zdarzenia, czyli punkty pomiarowe generowane przez silnik podczas określonych operacji. Zdarzenie może udostępniać pola opisujące jego przebieg, na przykład identyfikator sesji, nazwę bazy danych, tekst instrukcji, czas trwania, kod błędu albo informacje o obiekcie uczestniczącym w blokadzie. Samo wystąpienie zdarzenia nie oznacza jeszcze, że dane są zapisywane do pliku lub wyświetlane administratorowi. Potrzebna jest aktywna sesja Extended Events z odpowiednio skonfigurowanym celem.

Pakiet sqlserver dostarcza także akcje, predykaty, typy danych i mapy używane przez sesje. Akcja dołącza do zdarzenia dodatkową informację, taką jak nazwa aplikacji, nazwa hosta, login lub tekst stosu wywołań. Predykat ogranicza liczbę rejestrowanych zdarzeń, na przykład do konkretnego identyfikatora bazy danych, loginu albo minimalnego czasu trwania. Definicje tych elementów można przeglądać w widokach sys.dm_xe_objects, sys.dm_xe_object_columns oraz sys.dm_xe_map_values. Przy projektowaniu sesji należy sprawdzić, czy wybrany element należy do pakietu sqlserver, czy do innego pakietu.

Sesja Extended Events wykorzystująca sqlserver package

Sesję można utworzyć poleceniem CREATE EVENT SESSION, wskazując zdarzenia z pakietu sqlserver oraz cel przechowujący wyniki. Przykładowo zdarzenie sqlserver.sql_statement_completed rejestruje zakończone instrukcje języka T-SQL, a sqlserver.rpc_completed dotyczy zakończonych wywołań procedur zdalnych. Do analizy blokowania stosuje się między innymi zdarzenia dotyczące blokad i deadlocków, przy czym dokładne nazwy dostępnych zdarzeń trzeba potwierdzić w sys.dm_xe_objects. Sesję uruchamia się poleceniem ALTER EVENT SESSION ... ON SERVER STATE = START, a zatrzymuje przez ustawienie STATE = STOP.

Najczęściej używanym celem diagnostycznym jest event_file, który zapisuje zdarzenia do plików XEL. Taki zapis można później odczytać funkcją sys.fn_xe_file_target_read_file. Do krótkiej obserwacji w pamięci można wykorzystać target package0.ring_buffer, ale jego zawartość jest ograniczona i może zostać zastąpiona przez nowsze zdarzenia. Konfiguracja powinna zawierać filtry ograniczające zakres obserwacji, ponieważ rejestrowanie każdego zakończonego zapytania wraz z tekstem i planem wykonania może zwiększyć obciążenie oraz rozmiar plików. Sesje diagnostyczne trzeba też kontrolować pod kątem retencji plików i uprawnień do katalogu docelowego.

Znaczenie pakietu dla diagnostyki SQL Server

sqlserver package jest użyteczny przy ustalaniu przyczyn długiego czasu wykonywania zapytań, blokad, zakleszczeń, błędów i nietypowego obciążenia procesora. Dane z sesji Extended Events pozwalają powiązać zdarzenie z sesją, aplikacją, bazą danych i czasem wystąpienia. Dzięki temu można porównać moment problemu z logami aplikacji, aktywnością innych sesji oraz zmianami w planach zapytań. Mechanizm nie naprawia problemu automatycznie; dostarcza obserwowalnych danych potrzebnych do dalszej analizy konfiguracji, zapytań, indeksów i obciążenia silnika.

Podczas diagnostyki należy odróżnić definicję zdarzenia od danych zarejestrowanych przez sesję. Obecność nazwy zdarzenia w pakiecie sqlserver nie oznacza, że SQL Server aktualnie je zbiera. Najpierw trzeba sprawdzić sys.server_event_sessions oraz sys.dm_xe_sessions, aby ustalić, jakie sesje istnieją i które z nich są uruchomione. Następnie warto zweryfikować listę zdarzeń, akcje, predykaty i cel zapisu. Przy diagnostyce środowiska serwerowego bezpieczniej jest rozpocząć od wąskiego zakresu i krótkiego okna obserwacji, a dopiero później rozszerzać sesję, jeśli uzyskane dane nie wystarczają do wskazania przyczyny.

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