Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics (serverless SQL pool only)
Microsoft Fabric'te SQL veritabanı
Geçerli oturumun başka bir oturumla kilitlenmesi durumunda işlemeye devam etmesi için göreli önem derecesini belirtir.
Transact-SQL söz dizimi kuralları
Syntax
SET DEADLOCK_PRIORITY { LOW | NORMAL | HIGH | <numeric-priority> | @deadlock_var | @deadlock_intvar }
<numeric-priority> ::= { -10 | -9 | -8 | ... | 0 | ... | 8 | 9 | 10 }
Arguments
LOW
Kilitlenme zincirinde yer alan diğer oturumların kilitlenme önceliği NORMAL veya YÜKSEK olarak veya -5'ten büyük bir tamsayı değerine ayarlanmışsa geçerli oturumun kilitlenme kurbanı olacağını belirtir. Diğer oturumların kilitlenme önceliği -5'ten küçük bir tamsayı değerine ayarlandıysa geçerli oturum kilitlenme kurbanı olmayacaktır. Ayrıca, başka bir oturum kilitlenme önceliğini DÜŞÜK olarak veya -5'e eşit bir tamsayı değerine ayarlamışsa geçerli oturumun kilitlenme kurbanı olmaya uygun olduğunu belirtir.
NORMAL
Kilitlenme zincirinde yer alan diğer oturumların kilitlenme önceliği YÜKSEK veya 0'dan büyük bir tamsayı değerine ayarlanmışsa, ancak diğer oturumların kilitlenme önceliği DÜŞÜK veya 0'dan küçük bir tamsayı değerine ayarlanmışsa kilitlenme kurbanı olmayacaksa geçerli oturumun kilitlenme kurbanı olacağını belirtir. Ayrıca, başka bir oturumun kilitlenme önceliğini NORMAL olarak veya 0'a eşit bir tamsayı değerine ayarlaması durumunda geçerli oturumun kilitlenme kurbanı olmaya uygun olduğunu belirtir. NORMAL varsayılan önceliktir.
HIGH
Kilitlenme zincirinde yer alan diğer oturumların kilitlenme önceliği 5'ten büyük bir tamsayı değerine ayarlandıysa veya başka bir oturum da kilitlenme önceliğini YÜKSEK veya 5'e eşit bir tamsayı değerine ayarlamışsa kilitlenme kurbanı olmaya uygunsa geçerli oturumun kilitlenme kurbanı olacağını belirtir.
<sayısal öncelik>
21 kilitlenme önceliği düzeyi sağlamak için bir tamsayı değer aralığıdır (10'a-10). Kilitlenme zincirindeki diğer oturumlar daha yüksek bir kilitlenme önceliği değerinde çalışıyorsa geçerli oturumun kilitlenme kurbanı olacağını, ancak diğer oturumlar geçerli oturumun değerinden daha düşük bir kilitlenme öncelik değerinde çalışıyorsa kilitlenme kurbanı olmadığını belirtir. Ayrıca, geçerli oturumla aynı olan bir kilitlenme önceliği değeriyle başka bir oturum çalışıyorsa geçerli oturumun kilitlenme kurbanı olmaya uygun olduğunu belirtir. DÜŞÜK - 5, NORMAL - 0 ve YÜKSEK - 5 arası haritalar.
@ deadlock_var
Kilitlenme önceliğini belirten bir karakter değişkenidir. Değişkenin 'LOW', 'NORMAL' veya 'HIGH' değerine ayarlanması gerekir. Değişkenin tüm dizeyi barındıracak kadar büyük olması gerekir.
@ deadlock_intvar
Kilitlenme önceliğini belirten bir tamsayı değişkenidir. Değişken, aralıktaki bir tamsayı değerine ayarlanmalıdır (-10 10 olarak).
Remarks
İki oturum da diğeri tarafından kilitlenen kaynaklara erişim beklerken kilitlenmeler oluşur. BIR SQL Server örneği iki oturumun kilitlenmediğini algıladığında, oturumlardan birini kilitlenme kurbanı olarak seçerek kilitlenme sorununu çözer. Kurbanın geçerli işlemi geri alınır ve 1205 kilitlenme hata iletisi istemciye döndürülür. Bu, bu oturum tarafından tutulan tüm kilitleri serbest bırakır ve diğer oturumun devam etmesine olanak sağlar.
Kilitlenme kurbanı olarak seçilen oturum, her oturumun kilitlenme önceliğine bağlıdır:
Her iki oturum da aynı kilitlenme önceliğine sahipse, SQL Server örneği kilitlenme kurbanı olarak geri alınması daha düşük maliyetli olan oturumu seçer. Örneğin, her iki oturum da kilitlenme önceliğini HIGH olarak ayarladıysa örnek, geri almak için tahmin edeceği oturumun daha az maliyetli olduğunu tahmin eden bir kurban olarak seçer. Maliyet, her işlemde o noktaya kadar yazılan günlük baytlarının sayısı karşılaştırılarak belirlenir. (Bu değeri kilitlenme grafiğinde "Kullanılan Günlük" olarak görebilirsiniz).
Oturumlarda farklı kilitlenme öncelikleri varsa, kilitlenme önceliği en düşük olan oturum kilitlenme kurbanı olarak seçilir.
SET DEADLOCK_PRIORITY ayrıştırma zamanında değil yürütme veya çalışma zamanında ayarlanır.
Bu söz dizimi, Azure Synapse Analytics'teki ayrılmış SQL havuzlarında desteklenmez. Azure Synapse Analytics'teki sunucusuz SQL havuzlarında desteklenir.
Permissions
"" genel "" rolüne üyelik gerektirir.
Examples
Aşağıdaki örnekte kilitlenme önceliğini LOWolarak ayarlamak için bir değişken kullanılır.
DECLARE @deadlock_var NCHAR(3);
SET @deadlock_var = N'LOW';
SET DEADLOCK_PRIORITY @deadlock_var;
GO
Aşağıdaki örnek kilitlenme önceliğini olarak NORMALayarlar.
SET DEADLOCK_PRIORITY NORMAL;
GO