Ispravka: Plan upita za uskladištene procedure nije skriveno memorisana ako uskladištena procedura koristi BLOB promenljiva i promenljivu se koristi u funkciji niske u Microsoft SQL Server 2008 ili Microsoft SQL Server 2008 R2

Primenjuje se na: SQL Server 2008SQL Server 2008 R2

Microsoft distribuira Microsoft SQL Server 2008 i Microsoft SQL Server 2008 R2 popravlja kao jednu datoteku koja se može preuzeti. Pošto su kumulativne ispravke, svako novo izdanje sadrži sve hitne ispravke i sve bezbednosne ispravke koje su bile uključene u prethodne SQL Server 2008 ili SQL Server 2008 R2 popravi za javnost.

Simptomi


Razmotrite sledeći slučaj:
  • Kreirate uskladištene procedure u Microsoft SQL Server 2008 ili Microsoft SQL Server 2008 R2.
  • Uskladištena procedura koristi binarni veliki objekt (BLOB) promenljivu.
  • BLOB promenljivu se koristi u funkciji niske.
  • Izvršavanje uskladištene procedure.
U ovom slučaju, plan upita za uskladištenu proceduru nije skriveno memorisana.

Rešenje


Kumulativna ispravka informacije

SQL Server 2008 servisni paket 1

Zakrpe za ovo izdanje prvi put pušten u kumulativnu ispravku 10 za SQL Server 2008 Service Pack 1. Za više informacija o ovom paketu Kumulativna ispravka, kliknite na sledeći broj članka da biste videli članak u Microsoft bazi znanja:
2279604 Kumulativna ispravka paket 10 za SQL Server 2008 servisni paket 1
Napomena Jer se gradi su kumulativne, svako novo izdanje Ispravka sadrži sve hitne ispravke i sve bezbednosne ispravke koje su bile uključene u prethodne SQL Server 2008 popraviti za javnost. Microsoft preporučuje da imate u vidu primenjujete najnovije objavljivanja ispravka koji sadrži ovu zakrpu. Za više informacija, kliknite na sledeći broj članka da biste videli članak u Microsoft bazi znanja:
970365 SQL Server 2008 gradi objavljene nakon što je pušten je SQL Server 2008 servisni paket 1
Hitnih ispravki za Microsoft SQL Server 2008 su kreirani za određene servisne pakete za SQL Server. Morate primijeniti hitni popravak SQL Server 2008 servisni paket 1 za instalaciju za SQL Server 2008 Service Pack 1. Po podrazumevanim postavkama, neki hitni popravak koji je obezbeđen u servisni paket za SQL Server je uključena u novi servisni paket za SQL Server.

SQL Server 2008 servisni paket 2

Fix za ovaj problem prvi put pušten u kumulativnoj Update 1 za SQL Server 2008 servisni paket 2. Za više informacija o ovom paketu Kumulativna ispravka, kliknite na sledeći broj članka da biste videli članak u Microsoft bazi znanja:
2289254 Kumulativna ispravka 1 za SQL Server 2008 servisni paket 2
Napomena Jer se gradi su kumulativne, svako novo izdanje Ispravka sadrži sve hitne ispravke i sve bezbednosne ispravke koje su bile uključene u prethodne SQL Server 2008 popraviti za javnost. Preporučujemo da imate u vidu primenjujete najnovije objavljivanja ispravka koji sadrži ovu zakrpu. Za više informacija, kliknite na sledeći broj članka da biste videli članak u Microsoft bazi znanja:
2402659 SQL Server 2008 gradi objavljene nakon što je pušten je SQL Server 2008 servisni paket 2

SQL Server 2008 R2

Fix za ovaj problem je prvi put pušten u kumulativno ažuriranje 4. Za više informacija o tome kako da nabavite ovaj paket Kumulativna ispravka za SQL Server 2008 R2, kliknite na sledeći broj članka da biste videli članak u Microsoft bazi znanja:
2345451 Kumulativni paket za ažuriranje 4 za SQL Server 2008 R2
Napomena Jer se gradi su kumulativne, svako novo izdanje Ispravka sadrži sve hitne ispravke i sve bezbednosne ispravke koje su bile uključene u prethodne SQL Server 2008 R2 popraviti za javnost. Preporučujemo da imate u vidu primenjujete najnovije objavljivanja ispravka koji sadrži ovu zakrpu. Za više informacija, kliknite na sledeći broj članka da biste videli članak u Microsoft bazi znanja:
981356 SQL Server 2008 R2 gradi objavljene nakon što je pušten je SQL Server 2008 R2

Status


Microsoft je potvrdio da je ovo problem kod Microsoft proizvoda koji su navedeni u odeljku „Odnosi se na”.

Više informacija


Koji dovode do javljanja ovog problema, slijedite ove korake:
  1. Pokreni sledeći kôd da biste kreirali dva uskladištene procedure („p_test1” i „p_test2”). „P_test1” koristi BLOB promenljivu, i „p_test2” koristi varijabla nvarchar(100).
    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. Pokreni sledeći kôd da biste obrisali keš proceduru i da izvrši dvoje uskladištene procedure:
    dbcc freeproccachegoexec p_test1 N'abc'exec p_test2 N'abc'go 
  3. Pokreni sledeći kôd provjeriti keširane plan:
    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' 
Napomena Ako postoje mnoge uporedne pogubljenja ove vrste uskladištene procedure na Microsoft SQL Server 2008 ili se instanca za Microsoft SQL Server 2008 R2, možete iskusiti to je uzrokovano Kompajliranje brave na instancu blokira. Za više informacija o opisu SQL Server blokira uzrokovano Kompajliranje brave, pogledajte sledeći članak u Microsoft bazi znanja:
263889 Opis programa SQL Server blokira uzrokovano prevođenju brave

Reference


Za više informacija o funkcijama niske (Transact-SQL), posetite sledeće Microsoft Web lokacije:Za više informacija o modelu za servisiranje Incremental za SQL Server, kliknite na sledeći broj članka da biste videli članak u Microsoft bazi znanja:
935897 Incremental Model za servisiranje je dostupna iz SQL Server tima da dostavi hitnih ispravki za prijavljenih problema
Za više informacija o imenovanju šemi ažurirane verzije SQL servera, kliknite na sledeći broj članka da biste videli članak u Microsoft bazi znanja:
822499Nova šema imenovanja za pakete za dopunu softvera Microsoft SQL Server
Za više informacija o terminologiji za ažuriranje softvera, kliknite na sledeći broj članka da biste videli članak u Microsoft bazi znanja:
824684 Opis standardne terminologije koja se koristi za opisivanje Microsoftovih softverskih ažuriranja