Analyzing Deadlocks with SQL Server Profiler

Użycie SQL Server Profiler do zidentyfikowania przyczyny zakleszczenie. Zakleszczenie występuje wówczas, gdy istnieje zależność cykliczną między dwoma lub więcej wątków lub procesów, dla niektórych zestaw zasobów w programie SQL Server.Za pomocą SQL Server Profiler, można utworzyć śledzenia, które rejestruje, replays i wyświetla zdarzenia zakleszczenie do analizy.

Aby śledzić zdarzenie zakleszczenia, należy dodać Zakleszczenie wykresu 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 Aby wyodrębnić Zakleszczenie wykresu pojedynczy plik, który zawiera wszystkie zdarzeniaZakleszczenie wykresu zdarzeń, lub do oddzielnych plików.To wyodrębniania można wykonać w dowolnym z następujących sposobów:

  • W konfiguracja śledzenia czas, za pomocą Ustawienia wyodrębniania zdarzeń tab.Należy zauważyć, że ta karta nie jest wyświetlany do momentu zaznaczenia Zakleszczenie wykresu zdarzenie na Wybieranie zdarzeń tab.

  • Za pomocą wyodrębnić zdarzenia serwera SQL Opcja Plik menu.

  • Można również pojedynczych zdarzeń wyodrębniane i zapisany, klikając prawym przyciskiem myszy określonego zdarzenie i wybierając polecenie Wyodrębnij dane zdarzeń.

Wykresy zakleszczenie

SQL Server Profiler i SQL Server Management Studio za pomocą oczekiwania zakleszczenie — dla wykresu do opisania zakleszczenia. Podczas oczekiwania zakleszczenie — dla wykresu zawiera węzły procesu, węzły zasób i krawędzi reprezentujące relacje między procesy i zasobami.Składniki oczekiwania — w wykresach są zdefiniowane w tabela poniżej:

  • Węzeł procesu
    Wątek wykonuje zadania; na przykład, INSERT, UPDATE lub DELETE.

  • Węzeł zasób
    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 wówczas, gdy proces czeka na zasób. An owner edge occurs when a zasób waits for a process. Tryb blokada znajduje się w opisie krawędzi.Na przykład Tryb: X.Aby uzyskać informacje dotyczące możliwych wartości, które wyznaczyć blokada trybów zobacz Tryby blokada.

Węzeł proces zakleszczenie

Oczekiwania - dla wykresu węzeł procesu zawiera informacje na temat procesu.W poniższej tabela wyjaśniono składniki procesu.

Składnik

Definicja

Identyfikator procesu serwera

Identyfikator procesu serwera (SPID), serwer przypisany identyfikator procesu posiadającego blokadę.

Serwer partia identyfikator

Identyfikator serwera partia (SBID).

Kontekst wykonywania identyfikator

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

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

Priorytet zakleszczenie

Priorytet zakleszczenie w procesie.Aby uzyskać więcej informacji na temat możliwych wartości zobacz SET DEADLOCK_PRIORITY (Transact-SQL).

Dziennik używany

Ilość miejsca w dzienniku używany przez proces.

Identyfikator właściciela

Identyfikator transakcji dla procesów, które są przy użyciu transakcji i obecnie trwa oczekiwanie na blokadę.

Transakcja deskryptora

Wskaźnik do deskryptora transakcji, które opisują stan transakcji.

Bufor wejściowy

Dane wejściowe buforu bieżącego procesu, definiuje typ zdarzenie oraz w instrukcja wykonywany.Możliwe wartości to:

  • Język

  • RPC

  • None

Instrukcja

Typ instrukcja.Możliwe wartości to:

  • NOP

  • WYBIERZ OPCJĘ

  • AKTUALIZACJA

  • Aby wyświetlić właściwości operator plan wykonania

  • USUWANIE

  • Nieznany

Zakleszczenie zasób węzła

Zakleszczenie dwa procesy są każdego oczekiwania zasób przez inny proces.Na wykresie zakleszczenie zasoby są wyświetlane jako węzły zasób.Każdy zasób zostanie jeden z typów na liście Lock Granularity and Hierarchies.