Aracılığıyla paylaş


Lock: Eskalasyon Etkinliği Sınıfı

Şunlar için geçerlidir: SQL Server 2016 (13.x) ve sonraki sürümler Azure SQL DatabaseAzure SQL Managed InstanceSQL database in Microsoft Fabric

Lock:Escalation olay sınıfı, daha ince taneli bir kilidin daha iri taneli bir kilide dönüştürüldüğünü gösterir; örneğin, nesne kilidi dönüştürülen bir sıra kilidi. Yükseltme etkinliği sınıfı Etkinlik ID 60'tır.

Lock:Escalation Olay Sınıfı Veri Sütunları

Veri sütunu adı Veri türü Description Sütun Kimliği Filtrelenebilir
ApplicationName nvarchar SQL Server örneğine bağlantıyı oluşturan istemci uygulamasının adı. Bu sütun, programın görüntülenen adı yerine uygulama tarafından geçirilen değerlerle doldurulur. 10 Yes
ClientProcessID int ana bilgisayar tarafından istemci uygulamasının çalıştığı işleme atanan kimlik. Bu veri sütunu istemci süreç kimliğini sağlarsa doldurulur. 9 Yes
Database ID int Kilidin alındığı veritabanının kimliği. SQL Server Profiler, ServerName veri sütunu izde yakalandığında ve sunucu müsaitse veritabanının adını gösterir. DB_ID işlevini kullanarak veritabanının değerini belirleyin. 3 Yes
DatabaseName nvarchar Tırmanmanın gerçekleştiği veritabanının adı. 35 Yes
EventClass int Etkinlik türü = 60. 27 Hayı
EventSubClass int Kilidin yükselmesinin nedeni:

0 - LOCK_THRESHOLD ifadesinin kilit eşiğini aştığını gösterir.

1 - MEMORY_THRESHOLD , ifadenin bellek eşiğini aştığını gösterir.
21 Yes
Olay Dizisi int İstek içindeki belirli bir olayın sırası. 51 Hayı
GroupID int SQL İzleme olayının tetiklendiği iş yükü grubunun kimliği. 66 Yes
Ana Bilgisayar Adı nvarchar İstemcinin üzerinde çalıştığı bilgisayarın adı. Bu veri sütunu istemci ana adı verirse doldurulur. Ana bilgisayar adını belirlemek için HOST_NAME fonksiyonunu kullanın. 8 Yes
IntegerData int HoBT kilit sayısı. Kilit yükseltme sırasında HoBT için kilit sayısı. Yirmi beş Yes
IntegerData2 int Kilit sayısı yükseldi. Dönüştürülen kilitlerin toplam sayısı. Bu kilit yapıları, zaten yükseltilmiş kilit tarafından kapatıldıkları için serbest bırakılmıştır. 55 Yes
IsSystem int Olayın bir sistem işleminde mi yoksa kullanıcı işleminde mi gerçekleştiğini gösterir. 1 = sistem, 0 = kullanıcı. 60 Yes
LineNumber int Cümlesinin satır numarası Transact-SQL. 5 Yes
LoginName nvarchar Kullanıcının giriş adı (SQL Server güvenlik girişi veya Microsoft Windows giriş kimlik bilgileri DOMAIN\kullanıcı adı şeklinde). 11 Yes
LoginSid image Oturum açmış kullanıcının güvenlik kimlik numarası (SID). Bu bilgileri sys.server_principals katalog görünümünde bulabilirsiniz. Her SID, sunucudaki her oturum açma için benzersizdir. 41 Yes
Mod int Yükseltmeden sonra ortaya çıkan kilitleme modu:

0=NULL - Tüm diğer kilit modlarıyla uyumlu (LCK_M_NL)

1=Şema Stabilite kilidi (LCK_M_SCH_S)

2=Şema Modifikasyon Kilidi (LCK_M_SCH_M)

3=Paylaşılan Kilit (LCK_M_S)

4=Kilidi Güncelleme (LCK_M_U)

5=Özel Kilit (LCK_M_X)

6=Niyet Paylaşılan Kilitleme (LCK_M_IS)

7=Niyet Güncelleme Kilidi (LCK_M_IU)

8=Niyetle Özel Kilit (LCK_M_IX)

9=Güncelleme niyetiyle paylaşıldı (LCK_M_SIU)

10=Niyet Özel Paylaşıldı (LCK_M_SIX)

11=Niyet Özel Güncelleme (LCK_M_UIX)

12=Toplu Güncelleme Kilidi (LCK_M_BU)

13=Anahtar Aralığı Paylaşılan/Paylaşılan (LCK_M_RS_S)

14=Anahtar Aralığı Paylaşıldı/Güncellendi (LCK_M_RS_U)

15=Anahtar Aralığı Girişi NULL (LCK_M_RI_NL)

16=Anahtar Aralığı Ekleme Paylaşıldı (LCK_M_RI_S)

17=Anahtar Aralığı Ekleme Güncellemesi (LCK_M_RI_U)

18=Anahtar Aralığı Girişi Özel (LCK_M_RI_X)

19=Anahtar Aralığı Özel Paylaşıldı (LCK_M_RX_S)

20=Key Range Özel Güncellemesi (LCK_M_RX_U)

21=Key Range Özel Özel (LCK_M_RX_X)
32 Yes
NTDomainName nvarchar Kullanıcının ait olduğu Windows etki alanı. 7 Yes
NTUserName nvarchar Windows kullanıcı adı. 6 Yes
ObjectID int Kilit yükseltmesinin tetiklendiği masanın sistem tarafından atanmış kimliği. 22 Yes
ObjectID2 bigint İlgili nesne veya varlığın kimliği. (Kilit yükseltmesinin tetiklendiği HoBT ID.) 56 Yes
Ofset int Ifadenin başlangıcı Transact-SQL offset. 61 Yes
Sahiplik Kimliği int 1=IŞLEM

2=İMLEÇ

3=OTURUM

4=SHARED_TRANSACTION_WORKSPACE

5=EXCLUSIVE_TRANSACTION_WORKSPACE

6=WAITFOR_QUERY
58 Yes
RequestID int deyimini içeren isteğin kimliği. 49 Yes
SunucuAdı nvarchar İzlenen SQL Server örneğinin adı. 26 Hayı
SessionLoginName nvarchar Oturumu oluşturan kullanıcının oturum açma adı. Örneğin, Login1 ile SQL Server'a bağlanıp bir ifadeyi Login2 olarak çalıştırırsanız, SessionLoginName Login1 ve LoginName Login2 gösterir. Bu sütun hem SQL Server hem de Windows oturum açma bilgilerini görüntüler. 64 Yes
SPID int Olayın gerçekleştiği oturumun kimliği. 12 Yes
StartTime datetime Varsa olayın başlatıldığı saat. 14 Yes
TextData ntext Kilidin tırmanmasına neden olan Transact-SQL ifadesinin metni. 1 Yes
İşlem Kimliği bigint İşlemin sistem tarafından atanan kimliği. 4 Yes
Türü int Kilit yükseltme granülerliği:

1=NULL_RESOURCE

2=VERITABANI

3=DOSYA

5=NESNE (tablo seviyesi)

6=SAYFA

7=ANAHTAR

8=KAPSAM

9=KURTUL

10=UYGULAMA

11=METADATA

12=HOBT

13=ALLOCATION_UNIT
57 Yes

Örnekler

Aşağıdaki örnek, sp_trace_create iz oluşturma prosedürünü kullanır, sp_trace_setevent ize kilit yükseltme sütunları eklemek için kullanılır ve ardından izi başlatmak için kullanılır sp_trace_setstatus . Gibi EXEC sp_trace_setevent @TraceID, 60, 22, 1ifadelerde , sayı 60 yükseltme olay sınıfını, 22ObjectID sütununu gösterir ve 1 iz olayını ON olarak ayarlar.

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  by using sp_trace_setfilter.  
-- Start the trace.  
EXEC sp_trace_setstatus @TraceID, 1;  
GO  

İzleme çalışmaya başladıktan sonra, izlemek istediğiniz ifadeleri çalıştırın. İşleri bittiğinde, aşağıdaki kodu çalıştırarak durdurun ve ardından izi kapatın. Bu örnek, ifadelerde sp_trace_setstatus kullanılacak 'traceidi almak için fonksiyon kullanılırfn_trace_getinfo.

-- 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  

Ayrıca Bkz.

sp_trace_setevent (Transact-SQL)
sys.dm_tran_locks (Transact-SQL)