Udostępnij za pośrednictwem


Wyświetlanie i analizowanie śladów za pomocą profilera programu SQL Server

Dotyczy:programu SQL ServerAzure SQL Managed Instance

Użyj programu SQL Server Profiler, aby wyświetlić przechwycone dane zdarzeń w rejestrze. Program SQL Server Profiler wyświetla dane na podstawie zdefiniowanych właściwości śledzenia. Jednym ze sposobów analizowania danych programu SQL Server jest skopiowanie danych do innego programu, takiego jak SQL Server lub Doradca dostrajania aparatu bazy danych. Doradca dostrajania silnika bazodanowego może użyć pliku śledzenia zawierającego zdarzenia wsadowych poleceń SQL i wywołań zdalnych procedur (RPC), jeśli kolumna danych tekst jest uwzględniona w śladzie. Aby upewnić się, że poprawne zdarzenia i kolumny są przechwytywane do użycia z Doradcą dostrajania aparatu bazy danych, użyj wstępnie zdefiniowanego szablonu dostrajania dostarczonego z programem SQL Server Profiler.

Kiedy otwierasz śledzenie za pomocą programu SQL Server Profiler, plik śladu nie musi mieć rozszerzenia .trc, jeśli plik został utworzony przez program SQL Server Profiler lub systemowe procedury śledzenia SQL.

Notatka

Program SQL Server Profiler może również odczytywać pliki śledzenia SQL .log i ogólne pliki skryptów SQL. Podczas otwierania pliku śledzenia SQL, który nie ma rozszerzenia .log, takiego jak trace.txt, określ SQLTrace_Log jako format pliku.

Możesz skonfigurować format wyświetlania daty i godziny profilera programu SQL Server, aby pomóc w analizie śledzenia.

Rozwiązywanie problemów z danymi

Za pomocą programu SQL Server Profiler można rozwiązywać problemy z danymi, grupując ślady lub pliki śledzenia według kolumny danych czasu trwania, CPU, odczytylub zapis. Przykładami danych, które można rozwiązać, są zapytania, które działają źle lub mają wyjątkowo dużą liczbę operacji odczytu logicznego.

Dodatkowe informacje można znaleźć, zapisując ślady w tabelach i używając Transact-SQL do wykonywania zapytań dotyczących danych zdarzenia. Aby na przykład określić, które SQL:BatchCompleted zdarzenia miały zbyt długi czas oczekiwania, wykonaj następujące czynności:

SELECT  TextData, Duration, CPU  
FROM    trace_table_name  
WHERE   EventClass = 12 -- SQL:BatchCompleted events  
AND     CPU < (Duration * 1000)  

Notatka

Serwer raportuje czas trwania zdarzenia w mikrosekundach (10^-6 sekund) i ilość czasu procesora cpu używanego przez zdarzenie w milisekundach (10^-3 sekundy). Graficzny interfejs użytkownika profilera programu SQL Server wyświetla kolumnę Duration w milisekundach domyślnie, ale gdy ślad jest zapisywany w pliku lub tabeli bazy danych, wartość kolumny Czas trwania jest zapisywana w mikrosekundach. Te pomiary dotyczą zapytań Transact-SQL (T-SQL).

Wyświetlanie nazw obiektów podczas wyświetlania śladów

Jeśli chcesz wyświetlić nazwę obiektu, a nie identyfikator obiektu (identyfikator obiektu), należy przechwycić kolumny Nazwa serwera i identyfikator bazy danych kolumny danych wraz z kolumną Nazwa obiektu.

Jeśli wybierzesz grupowanie według kolumny danych Identyfikator obiektu, upewnij się, że najpierw grupujesz według kolumn danych Nazwa serwera i Identyfikator bazy danych, a następnie według kolumny danych Identyfikator obiektu. Podobnie, jeśli wybierzesz grupowanie według kolumny danych identyfikatora indeksu , najpierw grupuj według kolumn Nazwa serwera, Identyfikator bazy danychoraz Identyfikator obiektu, a następnie według kolumn Identyfikator indeksu. Należy grupować w tej kolejności, ponieważ identyfikatory obiektów i indeksów nie są unikatowe wśród serwerów i baz danych (oraz między obiektami dla identyfikatorów indeksów).

Znajdowanie określonych zdarzeń w ramach śledzenia

Aby znaleźć i grupować zdarzenia w śladzie, wykonaj następujące kroki:

  1. Utwórz ślad.

    • Podczas definiowania śledzenia przechwyć kolumny klasy zdarzeń, ClientProcessIDi godzina rozpoczęcia kolumny danych oprócz innych kolumn danych, które chcesz przechwycić. Aby uzyskać więcej informacji, zobacz Create a Trace (SQL Server Profiler).

    • Grupuj przechwycone dane według kolumny danych klasy zdarzeń i zapisz ślad do pliku lub tabeli. Aby zgrupować przechwycone dane, kliknij przycisk Organizuj kolumny na karcie Wybór zdarzeń w oknie dialogowym Właściwości śledzenia. Aby uzyskać więcej informacji, zobacz Organizowanie kolumn wyświetlanych w śladze (SQL Server Profiler).

    • Rozpocznij śledzenie i zatrzymaj je po upływie odpowiedniego okresu lub przechwyceniu liczby zdarzeń.

  2. Znajdź zdarzenia docelowe.

    • Otwórz plik śledzenia lub tabelę i rozwiń węzeł żądanej klasy zdarzeń; na przykład Deadlock Chain (Łańcuch zablokowania). Aby uzyskać więcej informacji, zobacz Otwórz plik śledzenia (SQL Server Profiler) lub Otwórz tabelę śledzenia (SQL Server Profiler).

    • Przeszukaj dane śladowe, aż znajdziesz szukane zdarzenia (użyj polecenia Znajdź w menu Edytuj programu SQL Server Profiler, aby znaleźć wartości w śladzie). Zanotuj wartości w kolumnach danych ClientProcessID i godzina rozpoczęcia w śledzonych zdarzeniach.

  3. Wyświetl zdarzenia w kontekście.

    • Wyświetl właściwości śledzenia i grupuj według kolumny danych ClientProcessID, a nie według kolumny danych klasy zdarzeń .

    • Rozwiń węzły każdego identyfikatora procesu klienta, które chcesz wyświetlić. Przeszuuj ślad ręcznie lub użyj Znajdź, dopóki nie znajdziesz wcześniej zanotowany wartości czasu rozpoczęciazdarzeń docelowych. Zdarzenia są wyświetlane w kolejności chronologicznej z innymi zdarzeniami należącymi do każdego wybranego identyfikatora procesu klienta. Na przykład zdarzenia Deadlock i Deadlock Chain, przechwycone w ramach śledzenia, są wyświetlane natychmiast po zdarzeniach SQL:BatchStartingw rozszerzonym identyfikatorze procesu klienta.

Ta sama technika może służyć do znajdowania dowolnych zdarzeń zgrupowanych. Po znalezieniu wyszukiwanych zdarzeń pogrupuj je według ClientProcessID, ApplicationNamelub innej klasy zdarzeń, aby wyświetlić powiązane działanie w kolejności chronologicznej.

Zobacz też