Introducing SQL Server Extended Events
SQL Server zdarzenie rozszerzony (Extended zdarzenie) jest ogólny system obsługi zdarzeń dla systemów serwerowych.Infrastruktura Extended zdarzenia obsługuje korelacji danych z SQL Server, a w pewnych warunkach korelacji danych z systemu operacyjnego i aplikacji baz danych. W tym drugim przypadek Extended zdarzenia wyjścia muszą być skierowane do zdarzeń śledzenia dla systemu Windows (ETW) Aby skorelować zdarzenia danych z systemu operacyjnego lub aplikacji dane zdarzenie.
Wszystkie aplikacje mają punkty wykonania, które są używane wewnątrz i na zewnątrz aplikacji.Wewnątrz aplikacji przetwarzania asynchronicznego może być enqueued, wykorzystując informacje zebrane podczas początkowego realizacji zadania.Poza aplikacją punkty wykonanie zapewniają narzędzia monitorowania informacji na temat właściwości behawioralnej i wydajności aplikacji monitorowanej.
zdarzenie rozszerzone obsługuje korzystanie z danych zdarzenie, poza procesem.Te dane, jest zazwyczaj używany przez:
Śledzenie narzędzi, takich jak Monitor systemu i śledzenia SQL.
Narzędzia do rejestracji, takie jak dziennik zdarzeń systemu Windows lub SQL Server Dziennik błędów.
Użytkownicy, administrowanie produktu lub tworzenia aplikacji na produkt.
Zdarzenia Rozszerzone projektowanie i właściwości
Rozszerzone zdarzenia mają następujące aspekty projektu klucz:
Aparat Extended zdarzenia to zdarzenie agnostic, co umożliwia aparat, tak aby powiązać każdego zdarzenia do dowolnego miejsce docelowe, ponieważ aparat nie jest ograniczony przez zdarzenie zawartości.Aby uzyskać więcej informacji na temat aparatu Extended zdarzeń Zobacz SQL Server Extended Events Engine.
zdarzenie są oddzielone od odbiorców zdarzeń, które są nazywane elementy docelowe rozszerzonym zdarzenie.Oznacza to, że dowolne miejsce docelowe mogą odbierać wszystkie zdarzenie.Ponadto wszystkie zdarzenie, które jest wywoływane mogą być automatycznie zużywa docelowym, które mogą rejestrować lub kontekst dodatkowe zdarzenie.Aby uzyskać więcej informacji, zobacz SQL Server Extended Events Targets
zdarzenie różnią się od akcja do wykonania po uruchomieniu zdarzenie.W wyniku akcja mogą być kojarzone z każdego zdarzenie.
Predykaty dynamicznie można filtrować zdarzenie wyzwalania, który dodaje do elastyczna jest infrastruktura Extended zdarzenie.Aby uzyskać więcej informacji zobaczSQL Server Extended Events Packages.
Rozszerzone zdarzenia mogą synchronicznie generować dane zdarzenie (i asynchronicznie przetwarzać dane) który zapewnia elastyczne rozwiązanie do obsługi zdarzeń.Ponadto rozszerzony zdarzeń udostępnia następujące funkcje:
Zunifikowana podejście do obsługi zdarzeń w systemie serwera, podczas gdy w tym samym czas pozwala użytkownikom do izolowania określonych zdarzeń w celu rozwiązywania problemów.
Integracja z i obsługę istniejących narzędzi ETW.
Można w pełni konfigurować zdarzenie obsługi mechanizmu na podstawie Transact-SQL.
Możliwość monitorowania dynamicznie aktywnych procesów w czasie, gdy jednocześnie posiadających minimalny wpływ na te procesy.
Używanie rozszerzonych zdarzenia z ETW
Jeśli chcesz użyć zdarzenia Extended do skorelowania danych z systemu operacyjnego i aplikacji baz danych, zaleca się najpierw się użytkownika praktycznej wiedza na temat ETW.ETW mogą być używane w połączeniu z rozszerzonym zdarzenie lub jako odbiorca zdarzeń Extended zdarzenie.Poniższe tematy zawierają punktu początkowego, aby uzyskać informacje dotyczące ETW:
Scenariusze dotyczące używania Extended zdarzenia
Extended zdarzenia można użyć dla szerokiego zakres monitorowanie i rozwiązywanie problemów z scenariuszy.Poniższe scenariusze ilustrują kilka sytuacji Extended zdarzenia może dostarczyć cennych danych do rozwiązywania problemów w takich obszarach, jak:
Przyczyny pracy przycinania zestaw do rozwiązywania problemów.
Rozwiązywanie problemów z nadmiernego obciążenia PROCESORA.
Rozwiązywanie problemów z zakleszczenia.
Korelacji działania żądania z dziennikami ETW systemu Windows.
Rozwiązywanie problemów z przyczyny pracy zestaw przycinania
Występują poważne problemy związane z wydajnością serwera produkcji, powodując aplikacje klienckie limitu czas.Problemy te wydają się być przejściowy, a wydajność powraca do normalnego po 10-15 minut.
Należy zbadać SQL Server errorlog i znaleźć następujące komunikaty o błędach:
"Znaczną część procesu serwera uległa stronicowaniu.Może to spowodować pogorszenie wydajności.Czas trwania: 300 sekund. Bieżący % 34 wykorzystania pamięci. „
"Bez otrzymania IOCP odbiornika. „
Uwaga
IOCP oznacza „ port ukończenie operacji We/Wy. „ Ten port usług żądania użytkowników za pośrednictwem sieci. Komunikat wskazuje, że portu zakończenia został zablokowany w ciągu ostatniej minuty.
Podejrzewasz, że SQL Server nie odpowiada dostatecznie szybko presji pamięci na serwerze. Podczas sprawdzania pamięci za pomocą Menedżera zadań, wydaje się być więcej niż za mało dostępnej pamięci na serwerze.Spróbuj połączyć się z bazą danych z SQL Server Management Studio, ale limitu czasu próby połączenia. Można ponownie połączyć się z serwerem przez wydanie SQLCMD - A polecenie wiersz polecenia systemu Windows.Spowoduje to otwarcie sesja na połączenie dedykowane administratora.
Użytkownik zdecyduje się użyć Extended zdarzenia, aby uzyskać więcej informacji.Można utworzyć sesja protokołu rozszerzonego zdarzenia które:
Dodaje zdarzenia sygnału pamięci systemu i serwer całkowitej pamięci zmiany.
Określa, że dane wyjściowe do ETW.Te dane wyjściowe zostaną zapisane do pliku, który jest tworzony na dysku, który nie jest używany dla pliku stronicowania lub przez SQL Server pliki bazy danych.
W wiersz polecenia systemu Windows będzie wykonać instrukcji w celu umożliwienia śledzenia ETW zdarzeniami pamięci jądro systemu Windows.Umożliwia zarówno ślady uruchomić na kilka minut, a następnie Zamknij sesja rozszerzone zdarzeń i śledzenia jądra systemu Windows.
Używasz tracerpt.exe do skorelowania śledzenia systemu Windows i SQL Server Śledzenia ETW. Wyszukaj zdarzenie wskazujące, że powiadomienie niskie pamięci systemu została ustawiona, ale nie zostanie znaleziony.Zamiast tego zostanie wyświetlony dużej liczby błędów strona od wszystkich procesów na serwerze.Sprawdź zdarzenia tuż przed stronicowania i dowiedzieć się, że zestawów roboczych wszystkich procesów zostały obcięte w odpowiedzi na żądania alokacji pamięci sterownika.
Rozwiązywanie problemów z nadmiernego obciążenia PROCESORA
W systemie produkcji, są badania nadmiernego obciążenia PROCESORA.Różne widoki dynamicznego zarządzania (DMVs) służy do określania, jeśli użycie PROCESORA mogą być przypisane do kwerendy, które zostały uruchomione w systemie.Badanie to wskazuje, że większość kwerend ad-hoc kwerend użytkownika.Informacje uzyskane z DMVs jest niewystarczająca do przeanalizowania problemu.
Można utworzyć sesja protokołu rozszerzonego zdarzenia które:
Umożliwia zdarzenia Kończenie instrukcja z predykaty określające próg PROCESORA.
Ma działanie tylko zebrać planu kwerend, po uruchomieniu zdarzenie.
Zapisuje dane, które są gromadzone w pliku.Ten plik znajduje się na dysku, który nie zawiera żadnych plików dziennika lub bazy danych.
Po uruchomieniu sesja Extended zdarzenia Przeanalizuj wyjście i są w stanie okaże się, że przyczyną problemu PROCESORA jest konwersja typu danych, często sprzężonych tabel.
Rozwiązywanie problemów z zakleszczenia
Raporty mają zostały odbiera od użytkowników, wskazując, że niektóre aplikacje są zwracać błędy zakleszczenie.Aby zmaksymalizować skuteczność rozwiązywania tych problemów, zdecydujesz się skoncentrować się na zakleszczenia, które są najczęściej trafień.Można utworzyć sesja protokołu rozszerzonego zdarzenia które:
Konfiguruje śledzenie zdarzeń zakleszczenie w sesja.
Określa miejsce docelowe, które zagregowanych oparte na identyfikator zakleszczenie.
Uruchamianie sesja Extended zdarzenia, a po dodatkowe zakleszczenie są zgłaszane jest możliwość uzyskania informacji sumarycznych zakleszczenie, wraz z pełną wykresu zakleszczenie XML dla każdego urządzenie źródłowe.Wykorzystując te informacje są w stanie pin polecenie najczęściej zakleszczenia i rozpocząć pracę nad rozwiązaniem.
Korelacji działania żądania z dziennikami ETW systemu Windows
Rozwiązywanie problemów spowolnienie aplikacji na serwerze produkcji i są w stanie zawęzić powód do czas odczytu dysku razy.Można utworzyć sesja protokołu rozszerzonego zdarzenia które:
Dodaje odczytów dysku jako zdarzenie typu sesja.
Wysyła dane, które są zbierane do ETW.
Po uruchomieniu sesja Extended zdarzeń należy uruchomić śledzenie jądra systemu Windows ETW.Po 10 minutach powoduje zatrzymanie zarówno sesje.
Za pomocą tracerpt.exe scalać śledzenia systemu Windows i śledzenia SQL ETW.Z tego śledzenia korespondencji seryjnej jest możliwe do skorelowania i śledzenia żądań odczytu od SQL Server dla jądra systemu Windows. Taka analiza wskazuje znaczne opóźnienie przed żądania We/Wy jest zwracany do SQL Server. Wykorzystując te informacje można całą pewnością ustalić czy polega problem we/wy na fizyczną ścieżka We/Wy.
See Also