| Termin | Definicja |
|---|---|
| System Health Session | System Health Session to domyślna, zawsze aktywna sesja Extended Events zbierająca podstawowe dane diagnostyczne. Rola sesji System Health Session w SQL ServerSystem Health Session, znana w dokumentacji SQL Server jako sesja Zakres zbieranych informacji obejmuje między innymi błędy o wysokim poziomie ważności, informacje o zakleszczeniach, problemy z planowaniem pracy zadań oraz wybrane sygnały wskazujące na przeciążenie lub nieprawidłowe działanie silnika. Nie jest to pełny dziennik wszystkich zapytań wykonywanych na serwerze. System Health Session ma dostarczać krótkiego obrazu stanu instancji i pomóc wskazać kierunek dalszej analizy, a nie zastępować profilowanie obciążenia ani szczegółowy audyt zapytań. Jakie zdarzenia trafiają do system_healthJednym z najważniejszych zastosowań tej sesji jest rejestrowanie zakleszczeń. SQL Server publikuje informacje o zakleszczeniu w postaci zdarzenia Sesja rejestruje również wybrane błędy silnika, w tym zdarzenia Ważnym ograniczeniem jest selektywny charakter sesji. Brak wpisu w system_health nie oznacza, że w instancji nie wystąpiło żadne zdarzenie, lecz tylko że zdarzenie nie należało do monitorowanego zakresu, nie spełniło predykatu albo zostało usunięte w wyniku ograniczonej pojemności celu. Dlatego diagnostyka powinna uwzględniać także SQL Server Error Log, dzienniki systemu operacyjnego, konfigurację blokowania procesów oraz dane z innych narzędzi Extended Events. Odczyt danych z celów Extended EventsSystem Health Session wykorzystuje cele Extended Events przeznaczone do przechowywania wyników sesji. Dane mogą być dostępne w buforze pierścieniowym oraz w plikach zdarzeń XEL, zależnie od wersji SQL Server i aktualnej definicji sesji. Bufor pierścieniowy przechowuje ograniczoną liczbę najnowszych wpisów w pamięci. Po zapełnieniu starsze informacje są zastępowane nowszymi, więc nie powinien być traktowany jako archiwum długoterminowe. Stan sesji można sprawdzić w widoku dynamicznym Pliki XEL można odczytywać za pomocą funkcji tabelowej Wykorzystanie sesji podczas analizy awarii SQL ServerAnalizę warto rozpocząć od określenia przedziału czasu, w którym wystąpiła awaria, spowolnienie albo utrata dostępności. Następnie należy wyszukać zdarzenia Przy podejrzeniu zakleszczenia należy przeanalizować graf XML, a nie tylko nazwę zdarzenia. Istotne są identyfikatory sesji, typy blokad, kolejność uzyskiwania zasobów i zapytania wykonywane przez uczestniczące transakcje. Przy podejrzeniu blokowania trzeba sprawdzić, czy długie oczekiwanie wynika z otwartej transakcji, braku odpowiedniego indeksu, dużej operacji modyfikującej dane czy przeciążenia zasobu. System Health Session pomaga uchwycić symptomy, ale decyzja o zmianie zapytania, indeksu lub konfiguracji wymaga dodatkowych dowodów. Podczas serwisowej diagnostyki instancji SQL Server należy zachować kopię dostępnych plików XEL przed ich nadpisaniem oraz odnotować wersję silnika, czas rozpoczęcia problemu i zmiany wykonane w tym okresie. Trzeba też zweryfikować, czy domyślna sesja nie została wyłączona, zmodyfikowana albo ograniczona przez ręczną zmianę celu. Prawidłowo zinterpretowane dane z |