| Termin | Definicja |
|---|---|
| SQL Server Extended Events Service | Extended Events Service to mechanizm zbierania zdarzeń diagnostycznych, lżejszy od klasycznego Profilera. Rola SQL Server Extended Events w obserwowaniu pracy silnikaSQL Server Extended Events to wbudowany w Microsoft SQL Server mechanizm rejestrowania zdarzeń zachodzących w silniku bazy danych. Zdarzeniem może być między innymi wykonanie instrukcji, błąd, przekroczenie czasu oczekiwania, zakleszczenie, zakończenie kompilacji planu zapytania albo wystąpienie określonego typu blokady. Mechanizm działa na podstawie sesji Extended Events, w których administrator wybiera zdarzenia, warunki filtrowania, dodatkowe dane oraz miejsce zapisu wyników. Extended Events nie jest odrębną usługą systemu Windows uruchamianą obok usługi SQL Server. Jest funkcją silnika SQL Server, zarządzaną w ramach instancji bazy danych. Określenie „Extended Events Service” może więc odnosić się do usługi lub mechanizmu zbierania zdarzeń, ale technicznie analizowane są sesje XE obsługiwane przez konkretną instancję SQL Server. Rozwiązanie zastąpiło w wielu zadaniach SQL Server Profiler i śledzenia SQL Trace, ponieważ pozwala precyzyjniej ograniczyć zakres obserwacji oraz zmniejszyć narzut związany z diagnostyką. Sesje, zdarzenia i warunki filtrowaniaSesja Extended Events składa się z definicji zdarzeń, opcjonalnych predykatów filtrujących, akcji oraz celów zapisu. Zdarzenie opisuje sytuację wykrywaną przez silnik, natomiast akcja dołącza dodatkowe informacje, takie jak identyfikator sesji, nazwa bazy danych, tekst instrukcji lub identyfikator użytkownika. Filtrowanie odbywa się po stronie mechanizmu zdarzeń, dzięki czemu nie trzeba gromadzić wszystkich zdarzeń i dopiero później odrzucać niepotrzebnych wpisów. Sesje można tworzyć w SQL Server Management Studio albo poleceniami Transact-SQL. Przykładowa definicja może używać składni Zapisywanie danych w pliku i diagnostyka problemówNajczęściej wykorzystywane cele sesji to W praktycznej diagnostyce można przygotować sesję rejestrującą konkretne błędy, długotrwałe wykonania zapytań, oczekiwania blokujące pracę lub informacje o zakleszczeniach. Należy ograniczyć zakres przez predykaty, na przykład do jednej bazy danych, wybranego identyfikatora sesji albo określonego czasu trwania. Zbyt szeroka sesja może generować dużo danych i utrudniać analizę, natomiast zbyt wąski filtr może pominąć przyczynę problemu. Pliki XE odczytuje się w SQL Server Management Studio albo za pomocą funkcji tabelarycznych, takich jak Bezpieczne użycie Extended Events podczas serwisowej diagnostykiPrzed uruchomieniem sesji trzeba ustalić, jaki problem ma zostać potwierdzony i jak długo ma trwać obserwacja. Warto zapisać nazwę instancji, bazę danych, czas rozpoczęcia oraz konfigurację sesji, aby później odróżnić zdarzenia diagnostyczne od normalnego ruchu. Po zakończeniu pomiaru sesję należy zatrzymać, jeżeli nie jest potrzebna stale, używając polecenia Analiza wyników powinna obejmować korelację czasu zdarzenia z obciążeniem procesora, pamięcią, operacjami dyskowymi, blokadami i błędami zgłaszanymi przez aplikację. Extended Events pokazuje zdarzenia z punktu widzenia SQL Server, ale nie zastępuje pełnej oceny systemu operacyjnego ani sprzętu. Przy awariach laptopów i komputerów PC używanych jako stanowiska administracyjne lub klienckie diagnostyka może obejmować sprawdzenie instalacji narzędzi, uprawnień do odczytu plików sesji, dostępności dysku oraz poprawności połączenia z właściwą instancją SQL Server. |