Oprava: Plánu dotazu uložené procedury nejsou uloženy v mezipaměti pokud uložená procedura používá proměnnou BLOB a používá proměnnou řetězec funkce v Microsoft SQL Server 2008 nebo Microsoft SQL Server 2008 R2

BUG #: 136483 (Content Maintenance)VSTS: 542472

Společnost Microsoft distribuuje Microsoft SQL Server 2008 a Microsoft SQL Server 2008 R2 opravy jako jeden soubor ke stažení. Protože jsou kumulativní opravy, každá nová verze tedy obsahuje všechny opravy hotfix a opravit všechny opravy zabezpečení, které byly součástí předchozích SQL Server 2008 nebo SQL Server 2008 R2 release.

Příznaky

Jde o takovouto situaci:

  • Vytvoření uložené procedury v Microsoft SQL Server 2008 nebo Microsoft SQL Server 2008 R2.

  • Uložená procedura používá proměnná binární rozsáhlý objekt (BLOB).

  • BLOB proměnná se používá ve funkci řetězec.

  • Spuštění uložené procedury.

V tomto scénáři není uložena v mezipaměti plán dotazu pro uloženou proceduru.

Řešení

Informace o kumulativní aktualizaci

SQL Server 2008 Service Pack 1

Oprava tohoto problému byla vydána nejprve v kumulativní aktualizace 10 pro SQL Server 2008 Service Pack 1. Další informace o tomto balíčku kumulativní aktualizace klepněte na následující číslo článku databáze Microsoft Knowledge Base:

2279604 Balíček kumulativní aktualizace 10 pro SQL Server 2008 Service Pack 1Poznámka Vzhledem k tomu, sestavení jsou kumulativní, každá nová verze oprava obsahuje všechny opravy hotfix a opravit všechny opravy zabezpečení, které byly součástí předchozích SQL Server 2008 release. Společnost Microsoft doporučuje zvážit použití nejnovější vydání oprava, která obsahuje tuto opravu hotfix. Další informace naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:

970365 SQL Server 2008 sestavení, které byly vydány po vydání SQL Server 2008 Service Pack 1 Microsoft SQL Server 2008 opravy hotfix jsou vytvořeny pro konkrétní aktualizace service Pack pro SQL Server. Opravy hotfix serveru SQL Server 2008 Service Pack 1 musí použít k instalaci aplikace SQL Server 2008 Service Pack 1. Ve výchozím žádné opravy hotfix, která je poskytována v aktualizace service pack serveru SQL Server je součástí další aktualizaci service pack pro SQL Server.

SQL Server 2008 Service Pack 2

Oprava tohoto problému byla vydána nejprve v kumulativní aktualizaci 1 pro SQL Server 2008 Service Pack 2. Další informace o tomto balíčku kumulativní aktualizace klepněte na následující číslo článku databáze Microsoft Knowledge Base:

2289254 Kumulativní aktualizace 1 pro SQL Server 2008 Service Pack 2Poznámka Vzhledem k tomu, sestavení jsou kumulativní, každá nová verze oprava obsahuje všechny opravy hotfix a opravit všechny opravy zabezpečení, které byly součástí předchozích SQL Server 2008 release. Doporučujeme zvážit použití nejnovější vydání oprava, která obsahuje tuto opravu hotfix. Další informace naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:

2402659 SQL Server 2008 sestavení, které byly vydány po vydání SQL Server 2008 Service Pack 2

SQL Server 2008 R2

Oprava tohoto problému byla vydána nejprve v kumulativní aktualizaci 4. Další informace o možnostech získání tohoto balíčku kumulativní aktualizace pro SQL Server 2008 R2 klepněte na následující číslo článku databáze Microsoft Knowledge Base:

2345451 Kumulativní balíček aktualizace 4 pro SQL Server 2008 R2 Poznámka Vzhledem k tomu, sestavení jsou kumulativní, každá nová verze oprava obsahuje všechny opravy hotfix a opravit všechny opravy zabezpečení, které byly součástí předchozích SQL Server 2008 R2 release. Doporučujeme zvážit použití nejnovější vydání oprava, která obsahuje tuto opravu hotfix. Další informace naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:

981356 SQL Server 2008 R2 sestavení, které byly vydány po vydání SQL Server 2008 R2

Stav

Společnost Microsoft potvrzuje, že se jedná o problém v produktech této společnosti, které jsou uvedeny v části Informace v tomto článku jsou určeny pro produkt.

Další informace

Chcete-li tento problém reprodukovat, postupujte takto:

  1. Spusťte následující kód vytvořit dvě uložené procedury ("p_test1" a "p_test2"). "P_test1" používá proměnnou BLOB a "p_test2" používá nvarchar(100) proměnnou.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. Spusťte následující kód, který chcete vymazat mezipaměť postup a provést dvě uložené procedury:dbcc freeproccachegoexec p_test1 N'abc'exec p_test2 N'abc'go

  3. Spustíte následující kód, který chcete zkontrolovat plán uložený v mezipaměti: 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'

Poznámka: Pokud existuje mnoho souběžné spuštění uložené procedury Microsoft SQL Server 2008 nebo Microsoft SQL Server 2008 R2 instance tohoto typu, může docházet k blokování, které je způsobené uzamčení kompilace v instanci. Další informace o serveru SQL Server blokování způsobené uzamčení kompilace popis naleznete v následujícím článku znalostní báze Microsoft Knowledge Base:

263889 Popis SQL Server blokování způsobené uzamčení kompilace

Odkazy

Další informace o funkce pro řetězce (Transact-SQL) navštivte následující web společnosti Microsoft:

Funkce pro řetězce (Transact-SQL)Další informace o přírůstkové Model servis pro SQL Server získáte v následujícím článku znalostní báze Microsoft Knowledge Base:

935897 Dílčí Model obsluhy je k dispozici z týmu SQL Server doručit opravy hotfix pro nahlášené potížeDalší informace o schéma názvů pro aktualizace serveru SQL Server klepněte na následující číslo článku databáze Microsoft Knowledge Base:

822499Nové schéma přidělování názvů balíčkům aktualizací softwaru Microsoft SQL Server proPro další informace o terminologii používané v aktualizacích softwaru, klepněte na následující číslo článku k zobrazení článku v databázi Microsoft Knowledge Base:

824684 Popis standardní terminologie používané při popisu aktualizací softwaru společnosti Microsoft

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

Potřebujete další pomoc?

Rozšiřte své znalosti a dovednosti
Projít školení
Získejte nové funkce jako první
Připojit se k programu Microsoft Insider

Byly tyto informace užitečné?

Děkujeme za váš názor!

Děkujeme vám za váš názor! Pravděpodobně bude užitečné, když vás spojíme s některým z našich agentů podpory Office.

×