Zablokuj: eskalacji klasa zdarzenia

The blokada:Escalation klasa zdarzenia indicates that a finer-grained blokada has been converted to a coarser-grained blokada; for example, a row blokada that is converted to an object blokada.Eskalacji klasa zdarzenie wynosi 60 identyfikator zdarzenie.

blokada: Eskalacji zdarzeń klasy danych kolumny

Nazwa kolumny danych

Typ danych

Description

Identyfikator kolumny

Czy umożliwia filtrowanie

ApplicationName

nvarchar

Nazwa aplikacji klient, który utworzył połączenie z wystąpienie programu SQL Server. CursorExecute

10

Tak

ClientProcessID

int

Identyfikator przypisany przez komputer-host to proces, w którym jest uruchomiona aplikacja klient.Ta kolumna danych jest pusta, jeśli klient dostarcza klientowi przetworzyć identyfikatora.

9

Tak

DatabaseID

int

ID of the database in which the lock was acquired.SQL Server Profiler displays the name of the database if the ServerName data column is captured in the trace and the server is available.Należy określić wartość dla bazy danych za pomocą funkcja DB_ID.

3

Tak

NazwaBazyDanych

nvarchar

Nazwa bazy danych, w której wystąpiło eskalacji.

35

Tak

EventClass

int

Typ zdarzenie = 60.

27

Nie

EventSubClass

int

Przyczyna eskalacja blokad:

0 - LOCK_THRESHOLD wskazuje instrukcja przekroczony próg blokada.

1 MEMORY_THRESHOLD wskazuje instrukcja przekroczony próg pamięci.

21

Tak

EventSequence

int

Sekwencja danego zdarzenie w żądaniu.

51

Nie

GroupID

int

Identyfikator grupy obciążenia, gdy zdarzenie śledzenia SQL uruchomieniu.

66

Tak

Exec Prepared SQL

nvarchar

Nazwa komputera, na którym działa klient.Ta kolumna danych jest pusta, jeśli klient dostarcza nazwę hosta.Aby określić nazwę hosta, należy użyć funkcja HOST_NAME.

8

Tak

IntegerData

int

Liczba blokad HoBT.Wyświetla liczbę blokad dla HoBT w momencie eskalacja blokad.

25

Tak

IntegerData2

int

Licznik escalated blokada.Całkowita liczba blokad, które zostały przekonwertowane.Te struktury blokada są przydziałów, ponieważ są one już objęte escalated blokada.

55

Tak

IsSystem

int

Wskazuje, czy zdarzenie wystąpiło w procesie systemowym, czy w procesie użytkownika.1 = proces systemowy; 0 = proces użytkownika.

60

Tak

LineNumber

int

Numer wiersza Transact-SQL Instrukcja.

5

Tak

LoginName

nvarchar

Nazwa logowania użytkownika (albo SQL Server Logowanie zabezpieczeń lub Microsoft System Windows poświadczenia logowania w postaci domena\nazwa_użytkownika).

11

Tak

LoginSid

image

Numer identyfikacyjny zabezpieczeń (SID) użytkownika zalogowanego.Niniejsze informacje można znaleźć sys.server_principals Służy do wyświetlania katalogu. Każdy identyfikator SID jest unikatowy dla każdego logowania na serwerze.

41

Tak

Tryb

int

Wynikowy trybu blokada po eskalacji:

0 = NULL - zgodny ze wszystkich innych blokada trybów (LCK_M_NL)

1 = Stabilności schematu blokada (LCK_M_SCH_S)

2 = Modyfikacji schematu blokada (LCK_M_SCH_M)

3 = blokada współdzielona (LCK_M_S)

4 = Blokada aktualizacji (LCK_M_U)

5 = blokada na wyłączność (LCK_M_X)

6 = Konwersji blokada współdzielona (LCK_M_IS)

7 = Konwersji blokada aktualizacji (LCK_M_IU)

8 = Konwersji blokadę wyłączności (LCK_M_IX)

9 = Shared z zamiarem aktualizacji (LCK_M_SIU)

10 = Współużytkowane z wyłącznością konwersji (LCK_M_SIX)

11 = Aktualizacji z wyłącznością konwersji (LCK_M_UIX)

12 = Blokada aktualizacji zbiorczej (LCK_M_BU)

13 = Zakres klucz udostępniony/folder (LCK_M_RS_S)

14 = Zakres klucz udostępniony/Aktualizuj (LCK_M_RS_U)

15 = Zakres klucz, Wstaw wartość NULL (LCK_M_RI_NL)

16 = Wstaw zakres klucz udostępniony (LCK_M_RI_S)

17 = Zakres klucz Wstaw, Aktualizuj (LCK_M_RI_U)

18 = Wstaw zakres klucz z wyłączeniem (LCK_M_RI_X)

19 = Zakres klucz z wyłączeniem udostępnione (LCK_M_RX_S)

20 = Zakres klucz z wyłącznością aktualizacji (LCK_M_RX_U)

21 = Zakres klucz z wyłączeniem z wyłącznością (LCK_M_RX_X)

32

Tak

NTDomainName

nvarchar

Domena systemu Windows, do której należy dany użytkownik.

7

Tak

NTUserName

nvarchar

Przygotowanie programu SQL

6

Tak

Identyfikator obiektu

int

Przypisane przez system identyfikator tabela, dla których eskalacja blokad został wyzwolony.

22

Tak

ObjectID2

bigint

Identyfikator powiązanego obiektu lub obiektu.(Identyfikator HoBT, dla których eskalacja blokad został wyzwolony.)

56

Tak

Występuje, gdy wykonuje kwerendę pełnego tekstu.

int

Początkowe przesunięcie Transact-SQL Instrukcja.

61

Tak

OwnerID

int

1 = TRANSAKCJI

2 = kursor

3 = sesja

4 = SHARED_TRANSACTION_WORKSPACE

5 = EXCLUSIVE_TRANSACTION_WORKSPACE

6 = WAITFOR_QUERY

58

Tak

IdentyfikatorŻądania

int

Występuje, gdy uprawnienie obiektów (takich jak SELECT) jest używana pomyślnie lub niepomyślnie.

49

Tak

Nazwa_serwera

nvarchar

Nazwa wystąpienie programu SQL Server śledzone.

26

Nie

SessionLoginName

nvarchar

Nazwa logowania użytkownika, który pochodzi z sesja.Na przykład, jeśli łączysz się z SQL Server za pomocą Login1 i wykonać instrukcję jako Login2, SessionLoginName pokazuje Login1 i LoginName pokazuje Login2.W tej kolumnie są wyświetlane oba SQL Server i identyfikatory logowania systemu Windows.

64

Tak

SPID

int

Identyfikator sesja, na którym wystąpiło zdarzenie.

12

Tak

Godzina rozpoczęcia

datetime

Czas, w którym zdarzenie uruchomione, jeśli są dostępne.

14

Tak

TextData

ntext

Tekst Transact-SQL Instrukcja, która spowodowała eskalacja blokad.

1

Tak

TransactionID

bigint

Identyfikator przypisany systemu transakcji.

4

Tak

Typ

int

eskalacja blokad rozdrobnienia:

1 = NULL_RESOURCE

2 = BAZY DANYCH

3 = PLIK

5 = OBJECT (poziom tabela)

6 = strona

7 = klucz

8 = fragment

9 = RID

10 = APLIKACJI

11 = metadane

12 = HOBT

13 = ALLOCATION_UNIT

57

Tak

Przykłady

W poniższym przykładzie użyto sp_trace_create procedurę, aby utworzyć śledzenie wykorzystania sp_trace_setevent Aby dodać kolumny eskalacji blokada do śledzenia, a następnie zastosowania sp_trace_setstatus Aby uruchomić śledzenie. W instrukcjach np. EXEC sp_trace_setevent @TraceID, 60, 22, 1, liczba 60 Wskazuje eskalacji klasa zdarzenia, 22 Wskazuje Identyfikator obiektu Kolumna a 1 Ustawia ON zdarzenie śledzenia.

DECLARE @RC int, @TraceID int
EXEC @rc = sp_trace_create @TraceID output, 0, N'C:\TraceResults'
-- Set the events and data columns you need to capture.
EXEC sp_trace_setevent @TraceID, 60,  1, 1 --  1 = TextData
EXEC sp_trace_setevent @TraceID, 60, 12, 1 -- 12 = SPID
EXEC sp_trace_setevent @TraceID, 60, 21, 1 -- 21 = EventSubClass
EXEC sp_trace_setevent @TraceID, 60, 22, 1 -- 22 = ObjectID
EXEC sp_trace_setevent @TraceID, 60, 25, 1 -- 25 = IntegerData
EXEC sp_trace_setevent @TraceID, 60, 55, 1 -- 25 = IntegerData2
EXEC sp_trace_setevent @TraceID, 60, 57, 1 -- 57 = Type
-- Set any filter  byusing sp_trace_setfilter.
-- Start the trace.
EXEC sp_trace_setstatus @TraceID, 1
GO

Teraz, śledzenia jest uruchomiony, należy wykonać instrukcje do śledzenia.Gdy ukończą, należy wykonać poniższy kod, aby zatrzymać, a następnie zamknij śledzenia.W tym przykładzie użyto fn_trace_getinfo Funkcja uzyskanie traceid do użytku w sp_trace_setstatus instrukcje.

-- After the trace is complete.
DECLARE @TraceID int
-- Find the traceid of the current trace.
SELECT @TraceID = traceid 
FROM ::fn_trace_getinfo(default) 
WHERE value = N'C:\TraceResults.trc'

-- First stop the trace. 
EXEC sp_trace_setstatus @TraceID, 0

-- Close and then delete its definition from SQL Server. 
EXEC sp_trace_setstatus @TraceID, 2
GO