NASıL YAPıLıR: KEEPFIXED PLAN saklı yordam yeniden devre dışı bırakmak için kullanın.

Makale çevirileri Makale çevirileri
Makale numarası: 276220 - Bu makalenin geçerli olduğu ürünleri görün.
Hepsini aç | Hepsini kapa

Bu Sayfada

Özet

Saklı yordamlar derlenmiş çekirdekler bazı durumlarda, bunu türetilen yararı recompilation maliyetini outweigh. Derlenmiş bir recompile tetiklendiğinde SQL Server Service Pack 2 (SP2) ve önceki deyimi düzeyi recompilation desteklemek için tüm saklı yordamını, Not çekirdekler gerekir. Bu nedenle, bir saklı yordamın yürütülmesini ve saklı yordamın uzunluğunu sırasında tetiklenen recompiles sayısı bazen saklı yordamın yürütülmesinin toplam süreyi artırabilir.

SQL Server 7.0 SP3'te başlayarak yeni bir sorgu ipucu KEEPFIXED PLAN, recompilation maliyetini varolan planın kullanma maliyetini birden fazla olduğu durumlarda yardımcı olmak için sunulmuş.

KEEPFIXED PLANLA sorgu ipucu sorguda istatistiklerdeki değişiklikleri veya dizili sütuna değişiklikleri (örneğin, güncelleştirme, silme veya ekleme) nedeniyle hiçbir zaman yeniden derlemek için sorgu en iyi duruma getiricisi zorlar. Saklı yordamın recompilation ile ilgili sorunları giderme hakkında ek bilgi için Microsoft Knowledge Base'deki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
243586INF: Saklı yordam Recompilation sorun giderme

KEEPFIXED PLAN ipuçlarını kullanan örnek kod

Bu bölümdeki örnek kod, aşağıdaki Microsoft Knowledge Base makalesinden şöyledir:
243586INF: Saklı yordam Recompilation sorun giderme
   drop procedure RowModifications 
   go
   create procedure RowModifications as
   -- assume SomeTable exists with the same definition as #t, 
   -- and has over 1000 rows
   create table  #t (a int )
   select * from  #t
   insert  #t select * from retest
   select count(*) from #t  where a = 37
   --option (keepfixed plan)
   go
   exec RowModifications
   go
   exec RowModifications
   go 
 
				
Ikinci yürütülmesini RowModifications yordamı için aşağıdaki kod, recompilation neden olur:
  select count(*) from #t where a = 37
				
bu kodu kullanırsanız:
Option (keepfixed plan)
				
gelen bu sorguyu Sorgu recompilation yeniden neden olmaz:
select count(*) from #t  where a = 37 option (keepfixed plan) 
				
Not bu sorguyu ipucu deyimi düzeyi üzerinde uygulanır ve tüm saklı yordamın kapsamını etkilemez. Bu seçenek, bir saklı yordam birden çok deyimlerinde etkilemesini istiyorsanız, her tablo bir davranış için SQL Server uygulayan ipucu uygulamalıdır. Bu ipucu için SQL Server 7.0 Service Pack 2 (SP2) veya önceki sürümleri kullanılabilir değil.

Özellikler

Makale numarası: 276220 - Last Review: 19 Temmuz 2006 Çarşamba - Gözden geçirme: 5.4
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2000 64-bit Edition
Anahtar Kelimeler: 
kbmt kbhowtomaster kbinfo KB276220 KbMttr
Machine-translated Article
Ö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:276220

Geri Bildirim Ver

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com