Düzeltme: Bir saklı yordam için bir sorgu planı saklı yordam bir BLOB değişkenini kullanır ve değişken bir dize işlevi, Microsoft SQL Server 2008 veya Microsoft SQL Server 2008 R2 kullanılır, önbelleğe alınmadı

Makale çevirileri Makale çevirileri
Makale numarası: 2380435 - Bu makalenin geçerli olduğu ürünleri görün.
Microsoft, Microsoft SQL Server 2008 dağıtır ve karşıdan yüklenebilir bir dosya olarak Microsoft SQL Server 2008 R2 giderir. Düzeltmeleri toplu olduğu için her yeni sürüm tüm düzeltmeleri içerir ve sürüm önceki SQL Server 2008 veya SQL Server 2008 R2 ile birlikte verilen tüm güvenlik düzeltmelerini düzeltin.
Hepsini aç | Hepsini kapa

Bu Sayfada

Belirtiler

Şu senaryoyu inceleyin::
  • Microsoft SQL Server 2008 veya Microsoft SQL Server 2008 R2'de bir saklı yordam oluşturun.
  • Saklı yordam, bir büyük ikili nesne (BLOB) değişkeni kullanır.
  • BLOB değişken bir dize işlevi kullanılır.
  • Saklı yordamı çalıştırın.
Bu senaryoda, saklı yordamı için Sorgu planını önbelleğe alınır.

Çözüm

Toplu güncelleştirme bilgileri

SQL Server 2008 Service Pack 1

Bu sorunla ilgili düzeltme, SQL Server 2008 Service Pack 1 için toplu güncelleştirme 10 önce yayımlanmıştır. Bu toplu güncelleştirme paketi hakkında daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
2279604SQL Server 2008 Service Pack 1 için toplu güncelleştirme paketi 10
NOT:Yapılar birikimli olduğu için her yeni düzeltme yayımlanan tüm düzeltmeleri içerir ve sürüm önceki SQL Server 2008 ile birlikte tüm güvenlik düzeltmelerini düzeltin. Microsoft bu düzeltmeyi içeren en son düzeltme sürümü uygulama düşünün önerir. Daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın::
970365SQL Server 2008, SQL Server 2008 Service Pack 1'de yayımlandıktan sonra yayımlanan oluşturur
Microsoft SQL Server 2008, düzeltmeleri belirli SQL Server hizmet paketleri oluşturulur. SQL Server 2008 Service Pack 1 yüklemesi için bir SQL Server 2008 Service Pack 1 düzeltme uygulamanız gerekir. Varsayılan olarak, bir SQL Server hizmet paketinde sağlanan herhangi bir düzeltme sonraki SQL Server hizmet paketine dahil edilir.

SQL Server 2008 Service Pack 2

Bu sorunla ilgili düzeltme, ilk önce SQL Server 2008 Service Pack 2 için toplu güncelleştirme 1'de yayımlanmıştır. Bu toplu güncelleştirme paketi hakkında daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
2289254SQL Server 2008 Service Pack 2 için toplu güncelleştirme 1
NOT:Yapılar birikimli olduğu için her yeni düzeltme yayımlanan tüm düzeltmeleri içerir ve sürüm önceki SQL Server 2008 ile birlikte tüm güvenlik düzeltmelerini düzeltin. Bu düzeltmeyi içeren en son düzeltme sürümü uygulama ele almanızı öneririz. Daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın::
2402659SQL Server 2008, SQL Server 2008 Service Pack 2 yayımlandıktan sonra yayımlanan oluşturur

SQL Server 2008 R2

Bu sorunla ilgili düzeltme, toplu Update 4'te önce yayımlanmıştır. SQL Server 2008 R2 için bu toplu güncelleştirme paketini elde etme hakkında daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
2345451SQL Server 2008 R2 için toplu güncelleştirme paketi 4
NOT:Yapılar birikimli olduğu için her yeni düzeltme yayımlanan tüm düzeltmeleri içerir ve sürüm önceki SQL Server 2008 R2 ile birlikte verilen tüm güvenlik düzeltmelerini düzeltin. Bu düzeltmeyi içeren en son düzeltme sürümü uygulama ele almanızı öneririz. Daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın::
981356SQL Server 2008 R2 SQL Server 2008 R2 yayımlandıktan sonra yayımlanan oluşturur.

Durum

Microsoft, "Geçerli Olduğu Ürünler" bölümünde listelenen Microsoft ürünlerinde bu sorunun olduğunu onaylamıştır.

Daha fazla bilgi

Bu sorunu yeniden oluşturmak için aşağıdaki adımları izleyin:
  1. Aşağıdaki kod iki oluşturmak için ("p_test1" ve "p_test2") saklı. "P_test1" bir BLOB değişkenini kullanır ve "p_test2" nvarchar(100) bir değişkeni kullanır.
    use tempdb
    go
    if OBJECT_ID('p_test1') is not null drop proc p_test1
    if OBJECT_ID('p_test2') is not null drop proc p_test2
    go
    create proc p_test1
    @s nvarchar(max)
    as
    begin
    select * from sys.objects 
    where name = UPPER(@s)
    end
    go
    create proc p_test2
    @s nvarchar(100)
    as
    begin
    select * from sys.objects 
    where name = UPPER(@s)
    end
    go
    
  2. Yordam önbelleğini temizlemek için şu kodu çalıştırın ve saklı yordamları iki çalıştırmak için:
    dbcc freeproccache
    go
    exec p_test1 N'abc'
    exec p_test2 N'abc'
    go
    
  3. Önbelleğe alınan planı denetlemek için şu kodu çalıştırın:
    select object_name(CONVERT(int, a.value)), cp.*
    from sys.dm_exec_cached_plans cp
    cross apply sys.dm_exec_plan_attributes(cp.plan_handle) a
    where cp.objtype = 'Proc'
    and a.attribute = 'objectid'
    
    
NOT:Bu tür bir saklı yordam Microsoft SQL Server 2008 veya Microsoft SQL Server 2008 R2 örneği, çok sayıda eşzamanlı çalıştırma varsa, derleme kilitleri örneğinde neden olduğu engelleme karşılaşabilirsiniz.

Açıklama derleme kilit nedeniyle SQL Server engelleme hakkında daha fazla bilgi için aşağıdaki Microsoft Bilgi Bankası makalesine bakın:
263889SQL Server tarafından derleme kilit nedeniyle engelleme açıklaması

Referanslar

Dize işlevleri (Transact-SQL) hakkında daha fazla bilgi için aşağıdaki Microsoft Web sitesini ziyaret edin:
Dize işlevleri (Transact-SQL)
SQL Server için değişen hizmet modeli hakkında daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
935897Değişen bir hizmet modeli bildirilen sorunlar için düzeltmeler sunmak için SQL Server ekibinden kullanılabilir
SQL Server güncelleştirmelerinin adlandırma şeması hakkında daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
822499Microsoft SQL Server yazılım güncelleştirme paketlerinin yeni adlandırma şeması
Yazılım güncelleştirme terminolojisi hakkında daha fazla bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın::
824684Microsoft yazılım güncelleştirmelerini açıklamak için kullanılan standart terminolojinin açıklaması

Özellikler

Makale numarası: 2380435 - Last Review: 15 Kasım 2010 Pazartesi - Gözden geçirme: 3.0
Bu makaledeki bilginin uygulandığı durum:
  • Microsoft SQL Server 2008 Enterprise
  • Microsoft SQL Server 2008 Developer
  • Microsoft SQL Server 2008 Standard
  • Microsoft SQL Server 2008 Standard Edition for Small Business
  • Microsoft SQL Server 2008 Workgroup
  • Microsoft SQL Server 2008 R2 Datacenter
  • Microsoft SQL Server 2008 R2 Developer
  • Microsoft SQL Server 2008 R2 Enterprise
  • Microsoft SQL Server 2008 R2 Standard
  • Microsoft SQL Server 2008 R2 Workgroup
Anahtar Kelimeler: 
kbqfe kbfix kbsurveynew kbexpertiseadvanced kbmt KB2380435 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:2380435

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