Optymalizacja śledzenia SQL

Dotyczy:SQL Server

Mimo że uruchomienie funkcji SQL Trace wiąże się z kosztem wydajności, ponieważ używa zasobów systemowych do zbierania danych, można wykonać wiele czynności, aby je zminimalizować. Aby zminimalizować koszty wydajności poniesione przez ślad, spróbuj wykonać następujące czynności:

  • Rozważ użycie wiersza polecenia do uruchamiania śledzenia. Korzystanie z graficznego interfejsu użytkownika utrudnia wydajność. Aby uzyskać więcej informacji, zobacz sp_trace_create (Transact-SQL).

  • Unikaj dołączania często występujących zdarzeń. Jeśli to możliwe, zawęź ślad za pomocą określonych klas zdarzeń i filtrów. Jeśli zebrano mniej zdarzeń śledzenia, do obsługi śledzenia jest wymagana mniejsza liczba zasobów systemowych.

  • Skoncentruj się na śledzeniu, aby zbierać tylko zdarzenia, które dostarczają odpowiednie dane. Jeśli ślad ma na celu zidentyfikowanie zakleszczeń, uwzględnij klasę zdarzeń Lock:Deadlock, ale nie klasę zdarzeń Lock:Acquired. Jeśli uwzględnisz obie klasy zdarzeń, ślad musi reagować na każde przejęcie blokady, co powoduje, że koszt wykonania zostanie podwojony.

  • Unikaj zbierania zduplikowanych danych. Na przykład w przypadku zbierania danych SQL:BatchStarted i SQL:BatchCompleted można zminimalizować rozmiar zestawu wyników, zbierając dane tekstowe tylko dla klasy zdarzeń SQL:BatchStarted .

  • Użyj filtrów w definicji śledzenia. Jeśli na przykład wiesz, że określony użytkownik zgłasza niską wydajność podczas zapytań ad hoc, utwórz filtr w polu LoginName. Ustaw filtr tak, aby zawierał tylko zdarzenia, w których nazwa_logowania jest zgodna z tą nazwą użytkownika.

Jeśli musisz uruchomić śledzenie zdarzeń, które powodują znaczący wpływ na wydajność, rozważ ograniczenie wpływu wydajności na serwer przy użyciu jednej z następujących metod:

  • Uruchamiaj ślady przez krótszy czas. Możesz kontrolować czas działania śledzenia, ustawiając czas zatrzymania. Jest to szczególnie ważne, jeśli nie można ograniczyć klas zdarzeń ani filtrować zdarzenia. Włączenie czasu zatrzymania gwarantuje, że naliczona wydajność nie trwa bezterminowo.

  • Ogranicz rozmiar wyników śledzenia. Rozmiar wyników śledzenia można ograniczyć do maksymalnego rozmiaru pliku. Ta strategia gwarantuje, że koszt wydajności zostanie zatrzymany po osiągnięciu limitu rozmiaru pliku (jeśli nie włączono przerzucania plików).

  • Ogranicz liczbę zwracanych zdarzeń. Za pomocą programu SQL Server Profiler można ograniczyć liczbę zdarzeń zwracanych przez zapisanie śladu w tabeli i ustawienie maksymalnej liczby wierszy. Wyniki śledzenia są nadal zwracane na ekranie programu SQL Server Profiler po osiągnięciu maksymalnej liczby wierszy, ale koszt rejestrowania wyników w tabeli zostanie wyeliminowany.

Zobacz też

Filtruj ślad