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

BUG #: 136483 (Content Maintenance)VSTS: 542472

Microsoft SQL Server 2008 Microsoft dağıtır ve Microsoft SQL Server 2008 R2 karşıdan yüklenebilir bir dosya olarak düzeltir. Düzeltmeleri birikimli 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 tüm güvenlik düzeltmelerini düzeltin.

Belirtiler

Aşağıdaki 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ı yürütme.

Bu senaryoda, saklı yordamı için sorgu planı önbelleğe alınmamış.

Çö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:

2279604 SQL Server 2008 Service Pack 1 için toplu güncelleştirme paketi 10Not Derlemeler birikimli olduğu için her yeni düzeltme, bir önceki SQL Server 2008 düzeltme sürümünde bulunan tüm düzeltmeleri ve güvenlik düzeltmelerini içerir. Microsoft, bu düzeltmeyi içeren en son düzeltme sürümü uygulama ele almanızı önerir. Daha fazla bilgi için Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasına tıklayın:

970365 SQL 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 için 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 paketinde bulunmaktadır.

SQL Server 2008 Service Pack 2

Bu sorunla ilgili düzeltme, ö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:

2289254 SQL Server 2008 Service Pack 2 için toplu güncelleştirme 1Not Derlemeler birikimli olduğu için her yeni düzeltme, bir önceki SQL Server 2008 düzeltme sürümünde bulunan tüm düzeltmeleri ve güvenlik düzeltmelerini içerir. 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ına tıklayın:

2402659 SQL 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, ilk toplu güncelleştirme 4'de 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:

2345451 SQL 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 gelen 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ına tıklayın:

981356 SQL Server 2008 R2, SQL Server 2008 R2'de yayımlandıktan sonra yayımlanan oluşturur

Durum

Microsoft bu sorunun "Aşağıdakilere Uygulanır" bölümünde listelenen Microsoft ürünlerinde bulunduğunu onaylamıştır.

Ek Bilgi

Bu sorunu yeniden oluşturmak için şu adımları izleyin:

  1. Aşağıdaki kodu çalıştırın iki oluşturmak için ("p_test1" ve "p_test2") saklı yordamlar. BLOB değişken "P_test1" ve "p_test2" nvarchar(100) değişkeni kullanır.use tempdbgoif OBJECT_ID('p_test1') is not null drop proc p_test1if OBJECT_ID('p_test2') is not null drop proc p_test2gocreate proc p_test1@s nvarchar(max)asbeginselect * from sys.objects where name = UPPER(@s)endgocreate proc p_test2@s nvarchar(100)asbeginselect * from sys.objects where name = UPPER(@s)endgo

  2. Yordam önbelleği temizlemek için şu kodu çalıştırın ve saklı yordamları iki yürütmek için:dbcc freeproccachegoexec p_test1 N'abc'exec p_test2 N'abc'go

  3. Önbelleğe alınan planı denetlemek için aşağıdaki kodu çalıştırın: select object_name(CONVERT(int, a.value)), cp.*from sys.dm_exec_cached_plans cpcross apply sys.dm_exec_plan_attributes(cp.plan_handle) awhere cp.objtype = 'Proc'and a.attribute = 'objectid'

Not: Bu tür bir saklı yordam bir Microsoft SQL Server 2008 veya Microsoft SQL Server 2008 R2 örneği üzerinde çok sayıda eşzamanlı yürütmeleri varsa, örnek derleme kilitler neden olduğu engelleme karşılaşabilirsiniz. Açıklama SQL Server derleme kilitleri neden olduğu engelleme hakkında daha fazla bilgi için aşağıdaki Microsoft Bilgi Bankası makalesine bakın:

263889 Açıklama SQL Server derleme kilitleri neden olduğu engelleme

Başvurular

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 artımlı 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:

935897 SQL Server ekibinden bildirilen sorunlar için düzeltmeler sunmak için artımlı bir hizmet modeli kullanılabilirSQL 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ına tıklayın:

824684 Microsoft yazılım güncelleştirmelerini açıklamak için kullanılan standart terminolojinin açıklaması

Author: sharxu
Writer: v-yipli
Tech Reviewer: amitban;sharxu;sqlprev
Editor:v-edcork

Daha fazla yardıma mı ihtiyacınız var?

Yeteneklerinizi geliştirin
Eğitimleri keşfedin
Yeni özellikleri ilk olarak siz edinin
Microsoft Insider 'a katılın

Bu bilgi yardımcı oldu mu?

Geri bildiriminiz için teşekkür ederiz!

Geri bildiriminiz için teşekkürler! Office destek temsilcilerimizden biriyle görüşmeniz yararlı olabilir.

×