Makale numarası: 263889 - Son Gözden Geçirme: 24 Kasım 2010 Çarşamba - Gözden geçirme: 1.0 SQL Server tarafından derleme kilit nedeniyle engelleme açıklaması
Bu SayfadaÖzetMicrosoft SQL Server'da, tek bir saklı yordam planı genellikle önbellekte bir kopyasıdır. Bu zorlama seri hale getirme bazı bölümlerinin derleme işlemi gerektirir ve bu eşitleme, kısmen derleme kilit kullanılarak gerçekleştirilir. Çok sayıda bağlantısı saklı yordamı aynı anda çalışan ve bir derleme kilidi, saklı yordam için çalışan her zaman elde edilmesi, sistem işlem kimliği (SPID), her bir nesne üzerinde özel derleme kilit edinmeye gibi birbirine engellemek başlayabilir. Daha fazla bilgiSaklı yordam recompilation bir açıklama yapmak için bir saklı yordam veya tetikleyiciyi derleme kilitleri var. Bu durumda azaltmak veya recompiles ortadan kaldırmak için çözümdür. Derlenmiş çekirdekler için bir saklı yordam olabilecek en yaygın nedenleri hakkında bir açıklama ve bazı yararlı bilgi recompiles sıklığını azaltmak için aşağıdaki Microsoft Bilgi Bankası makalesine bakın: 243586
(http://support.microsoft.com/kb/243586/
)
Saklı yordam recompilation sorun giderme Aşağıdaki koşullar geçerli olduğunda ortaya çıktığı derleme kilit başka bir senaryodur:
Varolan bir planı varsa, SQL Server önbelleğe alınan plan kullanır ve gerçekte saklı yordam derleme değil. Ancak, varolan önbelleğe alınmış yürütme planı yeniden kullanılabilir program belirlemeden önce bir özel derleme kilit almak ve ikinci bir önbellek araması gerçekleştirmek için SQL Server sahibi niteliği yetersiz zorlar. Kilit almak ve aramaları ve bu noktaya ulaşmak için gereken diğer işleri engellemek için müşteri adayları bir gecikme için derleme kilitleri neden olabilir. Sahibinin adı sağlama olmadan, aynı anda yordamı çalıştırmak saklı yordamın sahip olmayan kullanıcıların çoğu, özellikle de doğru olmasıdır. Derleme kilitlerine bekleyen SPID görmek bile sahip nitelikte olmaması, saklı yordam çalıştırmayı gecikmelere neden ve gereksiz yere yüksek CPU kullanımına neden unutmayın. Bu sorun oluştuğunda, aşağıdaki olaylar dizisi bir SQL Server Profiler izlemesinde kaydedilir. (Önbellek ile ilgili olayları izlemek için Gelişmiş olayları etkinleştirmeniz gerekir. Bunu yapmak için tıklatınSeçeneklerüzerindeAraçlarımenü seçeneğini tıklatıp seçinTüm olay sınıflarını.) Bu tabloyu kapa
SP:CacheMissada göre önbellek araması başarısız olduğunda oluşur. AşağıdakiSP:ExecContextHitsonra belirsiz bir nesne adını çözülmüş bir nesne kimliği için eşleşen bir önbellek planı önbellekte sonuçta bulunamadığını gösterir Koşullara göreSP:CacheHityerine görünebilirSP:ExecContextHit. Derleme kilitleme bu sorunun çözümü, saklı yordamlar başvuru sahibi tam emin olmasını sağlamaktır. (Yerineexec mystoredproc, Yönet'i kullanmadbo.mystoredproc.) Sahibi niteliği performansı artırmak için önemli olsa da, saklı yordam ek önbellek araması önlemek için veritabanı adı ile ilgili gerek yoktur. Engelleme, kilit aşağıdaki Microsoft Bilgi Bankası makalelerinde tanımlanan gibi engelleme komut dosyalarını kullanarak algılanabilir derleme nedeniyle oluşur: 251004
(http://support.microsoft.com/kb/251004/
)
BİLGİ: SQL Server 7.0 engelleme izlemek nasıl kullanılır 271509
(http://support.microsoft.com/kb/271509/
)
BİLGİ: SQL Server 2000 engelleme izlemek nasıl kullanılır The following are some typical characteristics of compile blocking that can be observed in the blocking script output:
spid blocked waittype waittime lastwaittype waitresource
---- ------- -------- -------- ------------ -------------------------
221 29 0x000e 2141 LCK_M_X TAB: 6:834102 [[COMPILE]]
228 29 0x000e 2235 LCK_M_X TAB: 6:834102 [[COMPILE]]
29 214 0x000e 3937 LCK_M_X TAB: 6:834102 [[COMPILE]]
13 214 0x000e 1094 LCK_M_X TAB: 6:834102 [[COMPILE]]
68 214 0x000e 1968 LCK_M_X TAB: 6:834102 [[COMPILE]]
214 0 0x0000 0 LCK_M_X TAB: 6:834102 [[COMPILE]]NOTLAR
Known issuesHere are some known issues that can prevent plan caching:
Bu makaledeki bilginin uygulandığı durum:
Otomatik TercümeÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir. Makalenin İngilizcesi aşağıdaki gibidir:263889
(http://support.microsoft.com/kb/263889/en-us/
)
| Diğer Kaynaklar Diğer Destek Siteleri
ToplulukHemen Yardım AlMakale çevirileri
|






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email


Üste