Aracılığıyla paylaş


SQL Server Profiler ile kilitlenmeleri analiz etme

Şunlar için geçerlidir:SQL ServerAzure SQL Yönetilen Örneği

Kilitlenmenin nedenini belirlemek için SQL Server Profiler'ı kullanın. SQL Server içindeki bazı kaynaklar için iki veya daha fazla iş parçacığı veya işlem arasında döngüsel bağımlılık olduğunda kilitlenme oluşur. SQL Server Profiler'ı kullanarak analiz için kilitlenme olaylarını kaydeden, yeniden yürüten ve görüntüleyen bir izleme oluşturabilirsiniz.

Kilitlenme olaylarını izlemek için kilitlenme grafı olay sınıfını bir izleme içine ekleyin. Bu olay sınıfı, izlemedeki TextData veri sütununu işlem ve kilitlenmeye dahil olan nesneler hakkındaki XML verileriyle doldurur. SQL Server Profiler, XML belgesini daha sonra SQL Server Management Studio'da görüntüleyebileceğiniz kilitlenme XML (.xdl) dosyasına ayıklayabilir. SQL Server Profiler'ı , Kilitlenme grafı olaylarını tüm Kilitlenme grafı olaylarını içeren tek bir dosyaya ayıklamak veya dosyaları ayırmak için yapılandırabilirsiniz. Bu ayıklama aşağıdaki yollardan herhangi biriyle yapılabilir:

  • İzleme yapılandırma sırasındayken, Olay Ayıklama Ayarları sekmesini kullanın. Bu sekme, Olay Seçimi sekmesinde Kilitlenme grafiği olayını seçene kadar görünmez.

  • Dosya menüsündeki SQL Server Olaylarını Ayıkla seçeneğini kullanma.

  • Belirli bir olaya sağ tıklayıp Olay Verilerini Ayıkla'yı seçerek tek tek olaylar da ayıklanabilir ve kaydedilebilir.

Kilitlenme grafikleri

SQL Server Profiler ve SQL Server Management Studio, kilitlenmeyi açıklamak için kilitlenme bekleme grafiği kullanır. Kilitlenme bekleme grafiği, işlemler ile kaynaklar arasındaki ilişkileri temsil eden işlem düğümlerini, kaynak düğümlerini ve kenarları içerir. Bekleme grafiklerinin bileşenleri aşağıdaki tabloda tanımlanmıştır:

Düğüm Açıklama
İşlem düğümü Görev gerçekleştiren bir iş parçacığı; örneğin, INSERT, UPDATEveya DELETE.
Kaynak düğümü Veritabanı nesnesi; örneğin, bir tablo, dizin veya satır.
Kenar İşlem ve kaynak arasındaki ilişki. bir işlem bir kaynağı beklediğinde istek kenarı oluşur. Kaynak bir işlemi beklediğinde sahip kenarı oluşur. Kilit modu kenar açıklamasına eklenir. Örneğin, Mod: X.

Kilitlenme işlemi düğümü

Bekleme grafiğinde işlem düğümü işlem hakkında bilgi içerir. Aşağıdaki tabloda bir işlemin bileşenleri açıklanmaktadır.

Bileşen Tanım
Sunucu işlem kimliği Oturum Kimliği (SPID), kilidin sahibi olan işlem için sunucu tarafından atanan tanımlayıcı.
Sunucu işlem kimliği Sunucu toplu iş tanımlayıcısı (SBID).
Yürütme ortam kimliği Yürütme bağlamı tanımlayıcısı (ECID). Belirli bir oturum kimliğiyle ilişkili belirli bir iş parçacığının yürütme bağlam kimliği.

ECID = { 0, 1, 2, 3, ... n }, burada 0 her zaman ana veya üst iş parçacığını temsil eder ve { 1, 2, 3, ... n } alt iş parçacıklarını temsil eder.
Kilitlenme önceliği İşlem için kilitlenme önceliği. Olası değerler hakkında daha fazla bilgi için bkz . SET DEADLOCK_PRIORITY.
Kullanılan Kayıt İşlem tarafından kullanılan kayıt dosyası alanı miktarı.
Sahip Kimliği Ödeme işlemlerini kullanan ve şu anda kilitte bekleyen işlemlerin işlem kimliği.
İşlem tanımlayıcısı İşlemin durumunu açıklayan işlem tanımlayıcısına yönelik işaretçi.
Giriş arabelleği Geçerli işlemin giriş arabelleği, olay türünü ve yürütülmekte olan deyimi tanımlar. Olası değerler şunlardır:

Dil
RPC
Hiçbiri
Açıklama Deyimin türü. Olası değerler şunlardır:

NOP
SEÇMEK
GÜNCELLEŞTİRMEK
SOKMAK
SİLMEK
Bilinmiyor

Kilitlenme kaynak düğümü

Kilitlenme durumunda, iki işlem birbirlerinin elinde olan bir kaynağı bekler. Kilitlenme grafiğinde kaynaklar kaynak düğümleri olarak görüntülenir.