Primenjuje se na
SQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard

Microsoft distribuira Microsoft SQL Server 2012 popravke u jednoj datoteci koja se može preuzeti. Budući da su ispravke kumulativne, svako novo izdanje sadrži sve hitne ispravke i sve bezbednosne ispravke koje su uključene u prethodno izdanje ažuriranja SQL Server 2012.

Simptomi

Razmotrite sledeći scenario:

  • Kreirate uskladištenu proceduru koja koristi parametar vrednovanje tabele (TVP) u sistemu Microsoft SQL Server 2012.

  • Koristite SQL Profiler ili SQL Server proširene događaje da biste zabeležili događaje RPC:Starting i RPC:Completed.

  • Pokrećete upit koji koristi TVP.

  • Vreme upita je isteklo.

U ovom scenariju dolazi do greške u planeru koji se ne daje i upiti koji rade na istom planru sporo se izvršavaju. Pored toga, u fascikli za SQL Server evidenciju generiše se datoteka mini-SQL Server.Kada dođe do ovog problema, dobijate poruku o grešci koja podseća na sledeću:

System.Data.SqlClient.SqlException (0x80131904): Isteklo je vremensko ograničenje. Period vremenskog ograničenja je isteklo pre dovršavanja operacije ili se server ne odaziva.u okviru System.Data.SqlClient.SqlInternalConnection.OnError(SqlException izuzetak, Boolean breakConnection)at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()at System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObjectObj, Greška UInt32)at System.Data.SqlClient.TdsParserStateObject.ReadSni(DbAsyncResult asyncResult, TdsParserStateObject stateObject)at System.Data.SqlClient.TdsParserStateObject.ReadNetworkPacket()na lokaciji System.Data.SqlClient.TdsParserStateObject.ReadByte()at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObject)at System.Data.SqlClient.SqlCommand.FinishExecuteReader(SqlDataReader ds, RunBehavior runBehavior, String resetOptionsString)at System.Data.SqlClient.SqlCommand.RunExecuteReaderTds(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, Boolean async)at System.Data.SqlClient.SqlCommand.RunExecuteReader(CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String method, DbAsyncResult result)at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(DbAsyncResult result, String methodName, Boolean sendToPipe)na lokaciji System.Data.SqlClient.SqlCommand.ExecuteNonQuery()at TVPApp.Program.Main(String[] args)

Greška planra koji se ne daje zajedno sa porukom o grešci koja podseća na sledeću evidentira se u SQL Server evidenciji grešaka:

<Date><Time> Server koristeći "dbghelp.dll" verziju "4.0.5"<Datum><Server> Server **Nije moguće dobiti kontekst niti za spid #<Date><Time> Server * ******************************************************************************* *******************************************************************************><2 Datum><Vreme> Server *><6 Datum><Server> Datum * ZAPOČNI IZBACIVANJE STEKA:><0 Datum><Vreme> Server * <Datum><>>><8 datum><Vreme> Server *><2 Date><Time> Server *><6 Datum><6 Datum><Vreme> Server *<Datum><Vreme> Server * *******************************************************************************<Datum><Vreme> Potpis steka servera za izbacivanje je 0x000000000000002C<Datum><Vreme> Server spoljnog procesa izbacivanja 0x20000001.Proces spoljnog izbacivanja nije vratio greške.<podataka><vreme> Server Proces 0:0:0 (0x1670) Radni radni 0x0000000004EDE160 izgleda da se ne može dobiti u planu 5. Vreme kreiranja niti: 13014210386757. Korišćen je Approx Thread CPU: kernel 0 ms, korisnik 70106 ms. Iskorišćenje procesa 16%. Stanje mirovanja sistema 77%. Interval: 70140 ms.<podataka><vreme> Server Proces 0:0:0 (0x1670) Radni radni 0x0000000004EDE160 izgleda da se ne može dobiti u planu 5. Vreme kreiranja niti:

Izazvati

Do ovog problema dolazi zbog greške u SQL Server 2012 mašini baze podataka. Tekstualne kolone u TVP-u primenjuju se kao umetnute niske ili baferi, a povećanje broja redova povećava broj bafera. Međutim, proces koji izdaje bafere oduže vreme. Stoga se greška planra koji se ne daje generiše kada dođe do operacija otpuštanje i smanjivanja. Napoome: Slično rešenje je rešeno u sledećem članku Microsoft baze znanja. Međutim, paket kumulativnih ispravki koji je opisan u članku nije za problem sa isteka vremena upita.

2520808 ISPRAVKA: Greška planera bez dobiti kada pokrenete upit koji koristi TVP u programu SQL Server 2008 ili u sistemu SQL Server 2008 R2 ako se koriste SQL Profiler ili SQL Server prošireni događaji

Rešenje

Kumulativne informacije o ažuriranju

Paket kumulativnih ispravki 5 za SQL Server 2012 servisni paket 1 (SP1)

Rešenje ovog problema je prvo objavljeno u kumulativnom ažuriranju 5. Za više informacija o tome kako da nabavite ovaj paket kumulativnih ispravki za SQL Server 2012, kliknite na sledeći broj članka da biste videli članak u Microsoft bazi znanja:

2861107 Paket kumulativnih ispravki 5 za SQL Server 2012Note Zato što su izdanja kumulativna, svako novo izdanje popravke sadrži sve hitne ispravke i sve bezbednosne ispravke koje su uključene u prethodno izdanje za popravku sistema SQL Server 2012. Preporučujemo da razmotrite primenu najnovije ispravke koja sadrži ovu hitnu ispravku. Za više informacija kliknite na sledeći broj članka da biste videli članak u Microsoft bazi znanja:

2772858 Verzije SQL Server 2012 objavljene su nakon izdanja SQL Server 2012 Service Pack 1

Zaobilaženje problema

Da biste zaobišli ovaj problem, koristite jedan od sledećih metoda:

  • Nemojte da koristite SQL Profiler ili SQL Server proširene događaje.

  • Kliknite da biste opozvali izbor u poljima za potvrdu RPC:Starting i RPC:Completed u definiciji praćenja.

Status

Microsoft je potvrdio da je ovo problem u Microsoft proizvodima koji su navedeni u odeljku "Odnosi se na".

Da li vam je potrebna dodatna pomoć?

Želite još opcija?

Istražite pogodnosti pretplate, pregledajte kurseve za obuku, saznajte kako da obezbedite uređaj i još mnogo toga.