| Termin | Definicja |
|---|---|
| user configurable events | User configurable events to zdarzenia definiowane przez użytkownika w SQL Server Extended Events lub aplikacji. Definiowanie zdarzeń przez użytkownika w SQL Server Extended EventsUser configurable events oznaczają zdarzenia, których zakres, warunki rejestracji i sposób zapisu może określić administrator albo twórca aplikacji. W SQL Server Extended Events konfiguracja nie polega na tworzeniu dowolnego zdarzenia o całkowicie nowej semantyce, lecz na dobraniu dostępnych zdarzeń, predykatów, akcji, filtrów i miejsc docelowych w sesji Extended Events. Dzięki temu można obserwować konkretny fragment działania silnika, na przykład wykonanie określonej instrukcji, wystąpienie błędu albo przekroczenie ustalonego czasu trwania zapytania. Sesja Extended Events jest obiektem konfiguracyjnym, który określa, jakie zdarzenia mają być zbierane i gdzie zostaną przekazane. Do często używanych miejsc docelowych należy Filtry, predykaty i akcje ograniczające zakres obserwacjiNajważniejszą częścią konfigurowalnego zdarzenia jest predykat, czyli warunek decydujący o tym, czy wystąpienie zdarzenia zostanie zarejestrowane. Filtr może ograniczać dane na podstawie nazwy bazy, identyfikatora sesji, nazwy aplikacji, loginu, kodu błędu albo czasu trwania operacji. Przykładowo sesja może rejestrować tylko zapytania trwające dłużej niż określony próg albo tylko zdarzenia pochodzące z jednej bazy danych. Takie ograniczenie zmniejsza ilość danych i ułatwia późniejszą interpretację wyników. Akcja różni się od samego zdarzenia. Zdarzenie opisuje fakt zaobserwowany przez silnik, natomiast akcja dołącza dodatkowy kontekst do tego faktu. Dwie sesje mogą więc wykorzystywać to samo zdarzenie, ale zbierać inne informacje pomocnicze. Przy projektowaniu sesji trzeba uwzględnić koszt rejestrowania danych: szerokie zdarzenia, brak predykatów i dodanie wielu akcji mogą zwiększyć obciążenie diagnostyczne oraz rozmiar plików. Konfiguracja powinna odpowiadać konkretnemu pytaniu, na które ma odpowiedzieć analiza. Zdarzenie aplikacyjne i przekazanie własnego kontekstuW aplikacji user configurable event może być punktem pomiarowym uruchamianym przez kod programu. Programista definiuje wtedy nazwę zdarzenia, moment jego wystąpienia oraz dane opisujące operację, na przykład identyfikator żądania, etap przetwarzania, rezultat walidacji albo czas wykonania fragmentu logiki. Takie zdarzenie nie zastępuje wyjątków ani logowania błędów. Jego rolą jest dostarczenie uporządkowanej informacji o przebiegu procesu, także wtedy, gdy nie doszło do awarii. Żeby zdarzenia aplikacyjne były użyteczne, ich schemat powinien być stabilny. Nazwa zdarzenia, znaczenie pól i jednostki czasu muszą być opisane jednoznacznie. Nie należy raz zapisywać czasu w milisekundach, a innym razem w sekundach, ani używać tego samego pola do oznaczania różnych stanów. Warto odróżnić rozpoczęcie i zakończenie operacji oraz uwzględnić sytuację przerwania procesu. Analiza par takich zdarzeń pozwala wykryć brak zakończenia, wielokrotne wykonanie tej samej czynności lub rozbieżność między etapami przepływu danych. Interpretacja danych i bezpieczna diagnostyka sesjiOdczyt danych z Extended Events wymaga sprawdzenia konfiguracji sesji, aktywnego miejsca docelowego oraz czasu wystąpienia badanego zdarzenia. W przypadku Podczas diagnostyki trzeba porównać zdarzenia z czasem systemowym, identyfikatorem sesji i kontekstem aplikacji. Opóźnienie między rozpoczęciem operacji a jej zakończeniem może wskazywać na blokowanie, oczekiwanie na zasób, ponowienie żądania albo błąd w logice aplikacji, ale nie powinno być interpretowane bez sprawdzenia pozostałych danych. Należy także kontrolować uprawnienia wymagane do tworzenia, uruchamiania i odczytywania sesji Extended Events. W środowisku, w którym występują problemy z działaniem aplikacji lub komputera, poprawnie zaprojektowane zdarzenia konfigurowalne pomagają odtworzyć kolejność operacji i oddzielić rzeczywistą przyczynę od wtórnych komunikatów. |