Aracılığıyla paylaş


Kilitlenmeleri bitiş algılama ve temizleme

İki veya daha fazla görevi kalıcı olarak birbirine kilit, diğer görevler kilitlemek için çalıştığınız bir kaynağa sahip her görev tarafından engelleyecek bir çıkmaz oluşur.Bir üst düzey görünümü bir çıkmaz durumu yeri aşağıdaki grafik sunar:

  • Görev T1 kilit kaynak R1 (R1 T1 ok ile gösterilen) sahip ve kaynak R2 (R2 T1 gelen ok ile gösterilen) kilit istedi.

  • Görev T2 kilit kaynak R2 (R2 T2 ok ile gösterilen) sahip ve kaynak (T2 R1 ok ile gösterilen) R1 kilit istedi.

  • Bir kaynağın göreve devam kadar hiçbir kaynak yayımlanacak kadar hiçbir görev devam için bir çıkmaz durumu yok.

Diagram showing tasks in a deadlock state

The SQL Server Database Engine automatically detects deadlock cycles within SQL Server.The Database Engine chooses one of the sessions as a deadlock victim and the current transaction is terminated with an error to break the deadlock.

Çıkmaz, kaynakları

Her kullanıcı oturum görev olabilir almak veya burada çeşitli kaynaklar almak için beklemek kendi adına çalışan bir veya birkaç görev olabilir.Aşağıdaki kaynak türlerini engelleme neden neden bir çıkmaz.

  • Kilitler.Almak için bekleyen kilitler kaynaklarıyla (örneğin, nesneleri, sayfaları, satırları, meta veriler ve uygulamalar neden olabilir çıkmaz.Örneğin, T1 hareket satır r1 paylaşılan bir (S) kilidi olan ve r2 üzerinde bir (X) özel kilit alınamıyor bekliyor.Hareket T2 r2 üzerinde paylaşılan bir (S) kilidi olan ve satır r1 bir özel (X) kilit almak için bekliyor.Bu bir kilit döngüsü, T1 ve T2 birbirine için kilitli kaynakları serbest bırakmak bekleyin olur.

  • Çalışan iş parçacıkları.Kullanılabilir bir parçacığı neden için bir sırada Görev bekleyen çıkmaz.Sırada görev tüm iş parçacıklarını engelleyen kaynaklara sahipse, bir kilitlenmeyle sonuçlanır.Örneğin, oturum S1 bir hareket başlatır ve satır r1 paylaşılan (S) kilitlendiğinde edinme ve uykuya geçirmek gider.Etkin oturumları tüm kullanılabilir alt iş parçacığı üzerinde çalışan özel (X) satır r1 üzerindeki kilitleri almaya çalışıyorsunuz.Oturum S1 bir çalışan iş parçacığı edinemez olduğundan, bu hareketi tamamlamak ve satır r1 kilit olamaz.Bu sonuçlar kilitlenme içinde.

  • Bellek.Eş zamanlı istekler için kullanılabilir bellek ile karşılanan bellek verir bekleyen, çıkmaz oluşabilir.Örneğin, iki eşzamanlı sorguları, S1 ve s2, yürütmek 10 MB ve 20 MB belleğe alma, sırasıyla, kullanıcı tanımlı işlevler olarak.Her sorgu 30 MB gerekir ve 20 MB Toplam kullanılabilir bellek ise S1 ve s2 beklemesi gereken birbirlerine için belleği serbest ve neden bu bir çıkmaz.

  • Paralel sorgu yürütme ile ilgili kaynaklar Düzenleyici, üreticisi ve tüketici iş parçacığı bir değişim bağlantı noktasıyla ilişkilendirilen birbirine paralel sorgu. bir parçası olmayan en az bir işlem genellikle de dahil olmak üzere, bir kilitlenmeye neden engelleyebilir Ayrıca, bir paralel sorgu başladığında yürütmeSQL Serverparallelism, veya çalışan iş parçacığı, temel alarak belirler. geçerli iş yükünü.Sistem yükünü beklenmedik bir şekilde, örneğin, burada sunucu üzerinde çalışan yeni sorgular'ı başlatın veya çalışan iş parçacığı dışında sistemin çalışır değiştirir, sonra bir çıkmaz oluşabilir.

  • Birden çok Active sonuç kümelerini (MARS) kaynakları.Bu kaynaklar, araya ekleme, MARS altında birden fazla etkin istek denetlemek için kullanılır (bkz: Toplu iş yürütme ortamı ve MARS).

    • Kullanıcı kaynağı.Kullanıcı uygulama tarafından kontrol edilir kaynak için iş parçacığı bekliyor, bir kullanıcı ya da dış kaynak olarak kabul edilir ve kilit gibi işlem görür.

    • Oturum mutex.Araya bir oturumda çalışan görevler, görevin tek bir oturumda altında çalıştırabilirsiniz; yani eklenmiş bir verilen saat.Görevi çalıştırmadan önce oturum mutex özel kullanım erişimi olması gerekir.

    • Hareket mutex.Araya bir işlemde çalışan tüm görevleri, yalnızca bir görevin belirli bir saat hareket altında çalışır; yani eklenmiş.Görevi çalıştırmadan önce hareket mutex özel kullanım erişimi olması gerekir.

    MARS'ın altında çalışacak bir görev, oturum mutex almanız gerekir.Görev işlem altında çalışıyorsa, daha sonra işlem mutex almanız gerekir.Bu, belirli bir oturum ve belirli bir işlem aynı anda yalnızca bir görevin etkin olduğu garanti eder.Gerekli birbirini kapsamayan nesneler alımları sonra görev için yürütmek.Ne zaman görev tamamlandıktan veya istek ortasında sayıları, bu ilk ters sırada alım oturum mutex tarafından izlenen işlem mutex yayımlayacaktır.Ancak, bu kaynaklarla kilitlenme ortaya çıkabilir.Aşağıdaki örnek, iki görevi, kullanıcının isteği U1 ve U2, kullanıcı isteği aynı oturumda çalışıyor.

    U1:    Rs1=Command1.Execute("insert sometable EXEC usp_someproc");
    U2:    Rs2=Command2.Execute("select colA from sometable");
    

    Kullanıcı isteği U1 saklı yordam çalıştırma oturum mutex aldı.Saklı yordamı çalıştırmak için uzun saat alıyorsa, onu olarak kabul edilirDatabase Enginesaklı yordam bekleyen giriş kullanıcı.sonuç kümesi U2 U2 sırasında kullanıcı oturum mutex bekliyor kullanıcı isteği bekliyor ve U1 kullanıcı kaynak için bekliyor.Bu mantıksal olarak gösterilen çıkmaz durumdur:

Logic diagram showing user process deadlock.

çıkmaz algılaması

Tüm Yukarıdaki bölümde listelenen kaynaklar katılmaDatabase Engineçıkmaz algılamasını düzeni.Karşılıklı çıkmaz algılaması düzenli olarak tüm görevleri bir örneğinde arama başlatan bir kilit izleme iş parçacığı tarafından gerçekleştirilenDatabase Engine.Arama işlemi aşağıdaki noktaları açıklamaktadır:

  • Varsayılan aralığı 5 saniyedir.

  • Kilit izleme iş parçacığı çıkmaz bulursa, çıkmaz algılama aralığı için 5 saniye arasında doğrudan 100 milisaniyede kilitlenmeleri frekansına bağlı olarak düşük.

  • Kilit izleme iş parçacığı kilitlenme, bulma durduğundaDatabase Enginearama arasındaki aralıkları artırır 5 saniye. için

  • Yalnızca bir çıkmaz algılandı, kilit için beklemesi gereken bir sonraki iş parçacığı çıkmaz döngüsü giriyorsunuz kabul edilir.çıkmaz algılandı sonra kilit beklediği kelimenin ilk hemen harekete çıkmaz arama yerine sonraki çıkmaz algılama aralığı için bekleyin.Örneğin, aralık 5 saniyedir ve yalnızca bir çıkmaz algılandı, sonraki kilit bekleme çıkmaz algılayıcı hemen kick.Bu kilit bekleme çıkmaz ise, hemen yerine sonraki çıkmaz arama sırasında algılanacaktır.

The Database Engine typically performs periodic deadlock detection only.Sistemde karşılaşılan çıkmaz sayısı genellikle küçük olduğu için dönemsel karşılıklı çıkmaz algılaması çıkmaz algılaması yükünü sistemdeki azaltılmasına yardımcı olur.

Kilit İzleyicisi özel bir iş parçacığı çıkmaz arama başlattığında, iş parçacığı bekleyen kaynağı tanımlar.Kilit İzleyicisi, belirli bir kaynak için daha sonra owner(s) bulur ve bulduğu bir döngü kadar yinelemeli olarak bu iş parçacığı çıkmaz arama devam eder.Bu şekilde tanımlanan bir döngü çıkmaz oluşturur.

çıkmaz algılandıktan sonraDatabase EngineBitiş iş parçacıkları bir çıkmaz kurban. birini seçerek bir çıkmazThe Database Engine terminates the current batch being executed for the thread, rolls back the transaction of the deadlock victim, and returns a 1205 error to the application.Geri hareket çıkmaz kurban için hareket tarafından tutulan tüm kilitlerin serbest bırakır.Bu, hareketleri engellenmemiş olur ve devam etmek için diğer iş sağlar.1205 çıkmaz kurban hatası iş parçacıklarının ve bir kilitlenmeyle ilgili kaynaklardan bilgi hata günlüğüne kaydeder.

Varsayılan olarak,Database Engineoturumda çalışan işlemi olan geri almak almak ucuz çıkmaz kurban olarak seçer geri almak almak.Alternatif olarak, kullanıcı oturumları önceliğini bir çıkmaz durumu küme DEADLOCK_PRIORITY deyim kullanarak belirtebilirsiniz.DEADLOCK_PRIORITY LOW, NORMAL veya yüksek olarak ayarlanabilir veya herhangi bir tamsayı değer aralığında (-10-10) alternatif olarak ayarlanabilir.çıkmaz önceliği NORMAL için varsayılan olarak ayarlanır.İki oturum farklı bir çıkmaz öncelikleri, düşük öncelikli oturumuyla çıkmaz kurban olarak seçilir.Her iki oturum çıkmaz aynı önceliğe sahip, geri almak en ucuz hareketi oturumuyla seçilir.Oturumlar çıkmaz döngüsünde yer alan aynı çıkmaz önceliği ve aynı maliyet, kurban rasgele seçilir.

CLR ile çalışırken, çıkmaz Monitörü içinde yönetilen yordamları erişilen çıkmaz (monitör, Okuyucu/Yazıcı kilit ve iş parçacığı birleştirmek) eşitleme kaynaklar için otomatik olarak algılar.Ancak, çıkmaz çıkmaz kurban olarak seçildi yordamda bir özel durum üretiliyor tarafından çözümlenir.Özel Otomatik kurban şu anda sahip olduğu kaynakları serbest bırakmıyor olduğunu bilmek önemlidir; açıkça kaynakları serbest bırakılmış.Özel davranış tutarlı, çıkmaz kurban olarak tanımlamak için kullanılan özel durum yakalandı atlamamış ve.

çıkmaz bilgi araçları

çıkmaz bilgilerini görüntülemek içinDatabase Engineiki izleme bayrakları, biçimini ve çıkmaz grafik olay izleme araçları sağlar.SQL Server Profiler.

İzleme bayrağı 1204 ve izleme bayrağı 1222

Kilitlenme olduğunda, yakalanan 1222 bilgisidir izleme bayrağı 1204 ve izleme bayrağıSQL Server 2005hata günlüğüçıkmaz dahil her bir düğüm tarafından biçimlendirilmiş bayrak 1204 raporları çıkmaz bilgileri izleyin.Bayrak 1222 biçimleri çıkmaz bilgileri, kaynakların ilk işlemler ve izleyin.Aynı çıkmaz olayı iki sunumu elde etmek her iki izleme bayrağı'nı etkinleştirmek mümkündür.

İzleme bayrağı 1204 ve 1222 özelliklerini tanımlamanın yanı sıra, aşağıdaki tabloda da benzerlikler ve farklar gösterir.

Özellik

İzleme bayrağı 1204 ve izleme bayrağı 1222

Yalnızca izleme bayrağı 1204

Yalnızca izleme bayrağı 1222

Çıktı biçimi

Çıktı yakalananSQL Server 2005hata günlüğü

çıkmaz söz konusu düğümlerde konusuna odaklanır.Her düğümün ayrılmış bir bölüm varsa ve son bölüm çıkmaz kurban açıklar.

Bilgi, bir XML şema tanımı (XSD) şemasına uygun olmayan bir XML benzeri biçimde verir.Üç ana bölüm biçimi vardır.İlk bölüm çıkmaz kurban olarak bildirir.İkinci bölüm çıkmaz dahil her işlemi açıklar.Üçüncü bölüm, izleme bayrağı 1204 düğümler ile eşanlamlı olan kaynakları açıklar.

Öznitelikler tanımlama

SPID:<x>ECID:<x>. Sistem işlem kimliği iş parçacığı durumlarda paralel işlemler. tanımlar GirişSPID:<x> ECID:0Burada,<x>SPID değeriyle değiştirilir, temsil ettiği ana iş parçacığı.GirişSPID:<x> ECID:<y>Burada,<x>SPID değeri değiştirilir ve<y>0'dan büyük, aynı SPID. sub-threads temsil eder

BatchID( sbid için izleme bayrağı 1222). Hangi kod yürütülmesine neden olabilecek isteyen veya kilit tutan toplu iş iş tanımlar.Birden çok Active sonuç kümelerini (MARS) devre dışı bırakıldığında, BatchID değeri 0'dır.MARS, etkinleştirildiğinde, etkin toplu değeri 1 olann.Oturum sırasında hiçbir etkin toplu işler varsa, BatchID 0'dır.

Mod.İstenen, verilen veya iş parçacığı tarafından bekledi belirli bir kaynak için kilit türünü belirtir.Mod E (paylaşılan amacı), S (paylaşılan), U (Güncelleştir), IX (hedefi özel), SIX olabilir (özel amacı ile paylaşılan) ve (özel) X.Daha fazla bilgi için bkz:Kilit modu.

# Satır ( satır için izleme bayrağı 1222). çıkmaz oluştuğunda yürütülmekte, geçerli toplu iş iş ifadelerden satır numarasını listeler.

Arabellek girişi ( inputbuf için izleme bayrağı 1222). Cari toplu iş iş işlemin tüm tablolarda listeler.

Düğüm.çıkmaz zincirindeki giriş numarasını gösterir.

Listeler.Kilit sahibi bu listeler bir parçası olabilir:

  • Verme listesi.Kaynağın geçerli sahibi numaralandırır.

  • Liste dönüştürme.Bir üst düzeye, kilit dönüştürmeye çalıştığınız geçerli sahipleri numaralandırır.

  • Bekleme listesi.Geçerli yeni kilit istekleri kaynak için sıralar.

Deyim türü.İş parçacıkları izinleriniz, DML deyimini (SELECT, INSERT, UPDATE veya DELETE) türünü açıklar.

Kurban kaynak sahibi.Katılan belirtir, iş parçacığıSQL Servermola için kurban olarak seçer çıkmaz döngüsü.Seçilen iş parçacığı ve varolan tüm sub-threads biter.

Sonraki şube.İki veya daha fazla sub-threads çıkmaz döngüsünde katılan aynı SPID tarafından temsil eder.

çıkmaz kurban.Görev fiziksel bellek adresini temsil eder (bkz: sys.dm_os_tasks (Transact-SQL)), seçili bir çıkmaz kurban.Çözülmemiş bir çıkmaz durumunda 0 (sıfır) olabilir.Göreve geri alınıyor çıkmaz kurban olarak seçilen olamaz.

executionstack.Temsil ederTransact-SQLanda yürütülmekte olan kod saat çıkmaz oluşur.

öncelik.çıkmaz önceliğini gösterir.Bazı durumlarda,Database Enginekısa bir süre elde çıkmaz önceliğini değiştirmek için kabul daha iyi eşzamanlılık.

logused.Görev tarafından kullanılan alanı günlüğe yazılır.

sahip kimliği.Denetim isteği hareketin kimliği.

durumu.Görevin durumu.Aşağıdaki değerlerden biridir:

  • Beklemede.Bir çalışan iş parçacığı için bekliyor.

  • runnable.Çalışma, ancak bekleyen bir kuantum için hazır.

  • çalıştırma.Şu anda üzerinde Çizelgeleyici çalışmıyor.

  • askıya alınmış.Çalışması askıya alınır.

  • Tamamlandı.Görev tamamlandı.

  • Döngüsel.Boş olması bir sayaç kilidi için bekliyor.

waitresource.Kaynak tarafından görev gerekli.

waittime.Kaynak için bekleyen milisaniye cinsinden saat.

schedulerid.Bu görevle ilişkili Zamanlayıcısı.Bkz:sys.dm_os_schedulers (Transact-SQL).

ana bilgisayar adı.İş istasyonunun adı.

isolationlevel.Geçerli işlem yalıtım düzey.

Xactid.Denetim isteği hareketin kimliği.

CurrentDB.Veritabanı kimliği.

lastbatchstarted.Son saat istemci işlemi toplu iş yürütme başladı.

lastbatchcompleted.Son istemci işlemi tamamlandı toplu iş yürütme zamanı.

clientoption1 ve clientoption2.Bu istemci bağlantı seçeneklerini ayarlayın.küme NOCOUNT ve XACTABORT küme küme deyimleri genellikle kontrol seçenekleri hakkında bilgi içeren bir bit maskesi budur.

associatedObjectId.HoBT (yığın veya B-ağacı) kimliğini temsil eder.

Kaynak nitelikleri

RID.Tek satır, bir kilit tutulan istenen veya bir tablo içinde belirtir.RID RID temsil: db_id:file_id:page_no:row_no.Örneğin,RID: 6:1:20789:0.

OBJECT.Üzerinde kilit tutulan istenen veya tabloyu tanıtır.OBJECT nesne gösterilir: db_id:object_id.Örneğin,TAB: 6:2009058193.

anahtar.Anahtar aralığında, kilit tutulan istenen ya da dizin belirtir.KEY anahtar gösterilir: db_id:hobt_id (index key hash value).For example, KEY: 6:72057594057457664 (350007a4d329).

PAG.sayfa tanımlayan kaynak, kilit tutulan istenen ya da üzerinde.PAG PAG gösterilir: db_id:file_id:page_no.For example, PAG: 6:1:20789.

Seç.kapsam yapısını tanımlar.Seç Seç gösterilir: db_id:file_id:extent_no.For example, EXT: 6:1:9.

DB.Veritabanı kilit tanımlar.DB aşağıdaki yollardan biriyle gösterilir:

  • DB: db_id

  • DB: db_id[BULK-OP-DB] yedek veritabanı tarafından kullanılan veritabanının kilit tanımlar.

  • DB: db_id[BULK-OP-LOG], belirli bir veritabanı için yedek günlüğü kat kilit tanımlar.

APP.Bir uygulamanın kaynak tarafından gerçekleştirilen kilit tanımlar.APP APP temsil: lock_resource.For example, APP: Formf370f478.

meta veriler.meta veriler kaynakları katılan temsil eden bir çıkmaz.meta veriler birçok subresources olduğundan, döndürülen değeri, deadlocked subresource bağlıdır.For example, METADATA.USER_TYPE returns user_type_id = <integer_value>.meta veriler kaynakları ve subresources, daha fazla bilgi için bkz:sys.dm_tran_locks (Transact-SQL).

HOBT.Bir yığın ya da B-ağacı bir kilitlenmeyle ilgili temsil eder.

Hiçbiri bu izleme bayrağı için özel.

Hiçbiri bu izleme bayrağı için özel.

İzleme bayrağı 1204 örneği

İzleme bayrağı 1204 açık olduğunda, aşağıdaki örnek çıktı gösterir.Bu durumda, düğüm 1 tablosunda dizin içeren bir yığın ve düğüm 2'de tablo ile bir yığın bir kümelenmemiş dizin.Dizin anahtar düğüm 2'de çıkmaz ortaya çıktığında güncelleştiriliyor.

Deadlock encountered .... Printing deadlock information
Wait-for graph

Node:1

RID: 6:1:20789:0               CleanCnt:3 Mode:X Flags: 0x2
 Grant List 0:
   Owner:0x0315D6A0 Mode: X        
     Flg:0x0 Ref:0 Life:02000000 SPID:55 ECID:0 XactLockInfo: 0x04D9E27C
   SPID: 55 ECID: 0 Statement Type: UPDATE Line #: 6
   Input Buf: Language Event: 
BEGIN TRANSACTION
EXEC usp_p2
 Requested By: 
   ResType:LockOwner Stype:'OR'Xdes:0x03A3DAD0 
     Mode: U SPID:54 BatchID:0 ECID:0 TaskProxy:(0x04976374) Value:0x315d200 Cost:(0/868)

Node:2

KEY: 6:72057594057457664 (350007a4d329) CleanCnt:2 Mode:X Flags: 0x0
 Grant List 0:
   Owner:0x0315D140 Mode: X        
     Flg:0x0 Ref:0 Life:02000000 SPID:54 ECID:0 XactLockInfo: 0x03A3DAF4
   SPID: 54 ECID: 0 Statement Type: UPDATE Line #: 6
   Input Buf: Language Event: 
     BEGIN TRANSACTION
EXEC usp_p1
 Requested By: 
   ResType:LockOwner Stype:'OR'Xdes:0x04D9E258 
     Mode: U SPID:55 BatchID:0 ECID:0 TaskProxy:(0x0475E374) Value:0x315d4a0 Cost:(0/380)

Victim Resource Owner:
 ResType:LockOwner Stype:'OR'Xdes:0x04D9E258 
     Mode: U SPID:55 BatchID:0 ECID:0 TaskProxy:(0x0475E374) Value:0x315d4a0 Cost:(0/380)

İzleme bayrağı 1222 örneği

İzleme bayrağı 1222 açık olduğunda, aşağıdaki örnek çıktı gösterir.Bu durumda, bir dizin olan bir yığın, ve diğer tablo kümelenmemiş bir dizin olan bir yığın.çıkmaz ortaya çıktığında ikinci tabloda dizin anahtarının güncelleştiriliyor.

deadlock-list
 deadlock victim=process689978
  process-list
   process id=process6891f8 taskpriority=0 logused=868 
   waitresource=RID: 6:1:20789:0 waittime=1359 ownerId=310444 
   transactionname=user_transaction 
   lasttranstarted=2005-09-05T11:22:42.733 XDES=0x3a3dad0 
   lockMode=U schedulerid=1 kpid=1952 status=suspended spid=54 
   sbid=0 ecid=0 priority=0 transcount=2 
   lastbatchstarted=2005-09-05T11:22:42.733 
   lastbatchcompleted=2005-09-05T11:22:42.733 
   clientapp=Microsoft SQL Server Management Studio - Query 
   hostname=TEST_SERVER hostpid=2216 loginname=DOMAIN\user 
   isolationlevel=read committed (2) xactid=310444 currentdb=6 
   lockTimeout=4294967295 clientoption1=671090784 clientoption2=390200
    executionStack
     frame procname=AdventureWorks.dbo.usp_p1 line=6 stmtstart=202 
     sqlhandle=0x0300060013e6446b027cbb00c69600000100000000000000
     UPDATE T2 SET COL1 = 3 WHERE COL1 = 1;     
     frame procname=adhoc line=3 stmtstart=44 
     sqlhandle=0x01000600856aa70f503b8104000000000000000000000000
     EXEC usp_p1     
    inputbuf
      BEGIN TRANSACTION
EXEC usp_p1
   process id=process689978 taskpriority=0 logused=380 
   waitresource=KEY: 6:72057594057457664 (350007a4d329)   
   waittime=5015 ownerId=310462 transactionname=user_transaction 
   lasttranstarted=2005-09-05T11:22:44.077 XDES=0x4d9e258 lockMode=U 
   schedulerid=1 kpid=3024 status=suspended spid=55 sbid=0 ecid=0 
   priority=0 transcount=2 lastbatchstarted=2005-09-05T11:22:44.077 
   lastbatchcompleted=2005-09-05T11:22:44.077 
   clientapp=Microsoft SQL Server Management Studio - Query 
   hostname=TEST_SERVER hostpid=2216 loginname=DOMAIN\user 
   isolationlevel=read committed (2) xactid=310462 currentdb=6 
   lockTimeout=4294967295 clientoption1=671090784 clientoption2=390200
    executionStack
     frame procname=AdventureWorks.dbo.usp_p2 line=6 stmtstart=200 
     sqlhandle=0x030006004c0a396c027cbb00c69600000100000000000000
     UPDATE T1 SET COL1 = 4 WHERE COL1 = 1;     
     frame procname=adhoc line=3 stmtstart=44 
     sqlhandle=0x01000600d688e709b85f8904000000000000000000000000
     EXEC usp_p2     
    inputbuf
      BEGIN TRANSACTION
EXEC usp_p2    
  resource-list
   ridlock fileid=1 pageid=20789 dbid=6 objectname=AdventureWorks.dbo.T2 
   id=lock3136940 mode=X associatedObjectId=72057594057392128
    owner-list
     owner id=process689978 mode=X
    waiter-list
     waiter id=process6891f8 mode=U requestType=wait
   keylock hobtid=72057594057457664 dbid=6 objectname=AdventureWorks.dbo.T1 
   indexname=nci_T1_COL1 id=lock3136fc0 mode=X 
   associatedObjectId=72057594057457664
    owner-list
     owner id=process6891f8 mode=X
    waiter-list
     waiter id=process689978 mode=U requestType=wait

Profil oluşturucu çıkmaz Graph olay

Bu, bir olayıSQL Server Profilerbir grafik gösterimi, görevler ve kaynaklarla ilgili çıkmaz. sunarAşağıdaki örnek, çıktısını gösterirSQL Server Profiler, çıkmaz grafik olay açık.

Logic flow diagram showing user process deadlock.

Çalıştırma hakkında daha fazla bilgi içinSQL Server Profilerçıkmaz grafik, bkz:SQL Server Profiler ile kilitlenmeleri çözümleniyor.