Analizowanie zakleszczenia z SQL Server Profiler

Użyj SQL Server Profiler do zidentyfikowania przyczyny zakleszczenie.Zakleszczenie występuje, gdy cykliczna zależność między dwoma lub więcej wątków lub procesów dla niektórych zestaw zasobów w ramach programu SQL Server.Za pomocą SQL Server Profiler, można utworzyć śledzenie rekordów, replays i wyświetla zakleszczenie zdarzenia dla analizy.

Dodać do śledzenia zdarzeń zakleszczenie, wykresu zakleszczenie klasa zdarzenia do śledzenia.This event class populates the TextData data column in the trace with XML data about the process and objects that are involved in the deadlock.SQL Server Profiler can extract the XML document to a deadlock XML (.xdl) file which you can view later in SQL Server Management Studio.Można skonfigurować SQL Server Profiler do wyodrębnić wykresu zakleszczenia zdarzenia w jednym pliku, który zawiera wszystkie wykresu zakleszczenia zdarzenia, lub w oddzielnych plikach.Tej ekstrakcji można zrobić w dowolnym z następujących sposobów:

  • W konfiguracja śledzenia czas, korzystanie z Ustawienia wydzielania zdarzenia kartę.Należy zauważyć, że ta karta niewidoczne do momentu zaznaczenia wykresu zakleszczenia zdarzenie Zaznaczenie zdarzenie kartę.

  • Za pomocą Wyodrębniania zdarzeń programu SQL Server opcji na pliku menu.

  • Można również pojedynczych zdarzeń ekstrahowane i zapisane prawym przyciskiem myszy określonego zdarzenia i wybierając polecenie Wyodrębnij dane zdarzenie.

Wykresy zakleszczenia

SQL Server Profileri SQL Server Management Studio za pomocą oczekiwania zakleszczenie-wykresu do opisania zakleszczenie.Zakleszczenie oczekiwania-wykres zawiera węzły procesu, węzłów zasób i krawędzie reprezentujące relacje między procesami i zasobami.Składniki oczekiwania-dla wykresów są zdefiniowane w poniższej tabela:

  • Proces węzła
    Wątek, który wykonuje zadania; na przykład WSTAW, zaktualizować lub usunąć.

  • Węzeł zasobów
    Obiekt bazy danych; na przykład tabela, indeks lub wiersza.

  • Krawędź
    Relacje między procesem i zasób.A request krawędź występuje podczas procesu czeka na zasób.owner Krawędzi występuje, gdy zasób oczekuje na proces.Tryb blokada znajduje się w opisie krawędzi.Na przykład tryb: X.Uzyskać informacje o możliwych wartości, które określają tryby blokada Tryby Lock.

Węzeł proces zakleszczenia

W przypadku oczekiwania-dla wykresu, węzeł proces zawiera informacje na temat procesu.W następującej tabela wyjaśniono składniki procesu.

Składnik

Definicja

Identyfikator procesu serwera

Identyfikator procesu serwera (SPID), serwer przypisany identyfikator procesu właścicielem blokada.

Serwer partia identyfikator

Identyfikator partia serwera (SBID).

Identyfikator kontekstu wykonanie

Identyfikator kontekstu wykonanie (ECID).Identyfikator kontekstu wykonanie danego wątek skojarzone z określonym SPID.

ECID = {0,1,2,3 ODPOWIEDNIEJ KOLEJNOŚCI SYSTEMY, ... n}, where 0 always represents the main or parent thread, and {1,2,3, ... n} represent the subthreads.

Priorytet zakleszczenia

Zakleszczenie priorytet procesu.Aby uzyskać więcej informacji dotyczących możliwych wartości, zobacz ZESTAW DEADLOCK_PRIORITY (Transact-SQL).

Dziennik używany

Ilość miejsca dziennika używane przez proces.

Identyfikator właściciela

Identyfikator transakcji dla procesów, które są przy użyciu transakcji i aktualnie oczekujących blokada.

Deskryptor transakcji

Wskaźnik do deskryptora transakcji, która opisuje stan transakcji.

Bufor wejściowy

Bufor bieżącego procesu wprowadzania, definiuje typ zdarzenie i instrukcja wykonywany.Możliwe wartości:

  • Język

  • RPC

  • Brak

Instrukcja

Typ instrukcja.Możliwe wartości to:

  • NOP

  • WYBIERZ

  • AKTUALIZACJA

  • WSTAW

  • USUŃ

  • Nieznany

Zakleszczenie zasobu węzła

Do zakleszczenie dwa procesy czekają na siebie zasób przechowywanych przez inny proces.Na wykresie zakleszczenie zasoby są wyświetlane jako węzły zasób.Każdy zasób będzie jeden z typów wymienionych w Rozdrobnienie blokady i hierarchii.