Aracılığıyla paylaş


Saklý Yordamlarý recompiling

Bir veritabanı gibi bir dizin ekleme ya da dizinlenmiş sütunlardaki veri değiştirme işlemleri tarafından değiştirilmiş olduğu gibi kendi tablo erişmek için kullanılan özgün sorgu planlarını yeniden recompiling tarafından optimize.This optimization happens automatically the first time a stored procedure is run after Microsoft SQL Server is restarted.saklı yordam değişiklikleri tarafından kullanılan temel bir tablo ortaya çıkar.But if a new index is added from which the stored procedure might benefit, optimization does not happen until the next time the stored procedure is run after Microsoft SQL Server is restarted.Bu durumda da yürütülür bir sonraki açışınızda yeniden derlemek için saklı yordam zorlamak yararlı olabilir

Başka bir nedenle yeniden derlemek için saklı bir yordam zorlamak için gerektiğinde, saklı yordam derleme "parametresi olarak algılaması" davranışını counteract sağlamaktır.Ne zaman SQL Server saklı yordamlar, yürütür derlediğinde, yordam tarafından kullanılan herhangi bir parametre değeri parçası olarak sorgu planı oluşturma dahil edilir. Bu değerler ile normal olanları temsil ediyorsa, saklı yordam kazançlar planından sorgu her, saat sonra çağrılan yordamı daha sonra derler ve yürütür.Tersi durumda, performansı düşebilir.

Not

SQL Server 2008 Düzey Ekstresi recompilation, saklı yordamlar sağlar.Ne zaman SQL Server 2008 recompiles saklı yordamları, yalnızca recompilation neden deyim yerine bu yordamın tamamını derlendi. Sonuç olarak, SQL Server parametre değerleri recompiled deyiminde var olduğunda, bir sorgu planını yeniden kullanır. Bu değerler, ilk yordamı geçirildi farklı olabilir.

Bir saklı yordam yeniden derlemek için zorlama

SQL Server saklı yordam yeniden derlemek için zorlamak için üç yol sağlar:

  • The sp_recompile sistem saklı yordamı forces a recompile of a saklı yordam the next saat it is run.

  • WITH yeniden DERLE) seçeneğini, kendi tanımında belirten bir saklı yordam oluşturma gösterir SQL Server önbelleğe değil bir plan Bu saklı yordamını; saklı yordam derlenmiş çekirdekler her saat yeniden yürütüldü. S saklı yordam parametre değerleri, yaygın olarak yürütmeler arasında farklılık alırken WITH yeniden DERLE) seçeneğini kullanın... saklı yordam, farklı bir yürütme planları her saat oluşturulacak ortaya çıkan.Bu seçenek kullanımı seyrek ve saklı neden saklı yordam olması gerektiğinden, daha yavaş yürütme yordamı her derlenmiş çekirdekler saat yürütülecek olan.

    Yalnızca tek tek sorguların derlenmiş, saklı yordam tamamını değil, çekirdekler için saklı yordam içinde istiyorsanız, istediğiniz derlenmiş çekirdekler RECOMPILE sorgu ipucu her sorgu içinde belirtin.Bu davranış taklit eder. SQL ServerDüzey Ekstresi recompilation davranış yukarıda belirtildiği olan, ancak saklı yordamın geçerli parametre değerleri RECOMPILE sorgu ipucu da kullanmaya ek olarak saklı yordam içindeki herhangi bir yerel değişkenlerinin değerlerini deyim derleme yaparken kullanır. Yalnızca alt küme küme küme sorgu saklı yordam için ait atypical veya geçici değerleri kullanıldığında, bu seçeneği kullanın.Daha fazla bilgi için bkz: Sorgu ipucu (Transact-SQL).

  • Saklı yordamı saklı yordamı çalıştırdığınızda, WITH yeniden DERLE) seçeneğini belirterek derlenmiş çekirdekler zorlayabilir.Yalnızca, sağlama parametre atypical veya saklı yordam oluşturulduğundan bu yana verileri önemli ölçüde değiştirildiyse, bu seçeneği kullanın.

    Not

    Saklı bir yordam tarafından başvurulan bir nesne silindi veya yeniden adlandırıldığında, saklı yordam çalıştırıldığında hata döndürdü.Ancak, bir saklı yordamın içinde başvurulan bir nesne ile aynı ada sahip bir nesne yerine, saklı yordam yeniden gerek kalmadan yürütür.

Sonraki çalıştırıldığında bir saklı yordam yeniden oluşturmak için