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

Microsoft distribuira popravke sustava Microsoft SQL Server 2012 u jednoj datoteci koja se može preuzeti. Budući da su popravci kumulativni, svako novo izdanje sadrži sve hitne popravke i sva sigurnosna ažuriranja koja su obuhvaćena prethodnim izdanjem ažuriranja SQL Server 2012.

Simptomi

Razmislite o sljedećem scenariju:

  • Stvorite spremljenu proceduru koja koristi parametar vrijednosti tablice (TVP) u programu Microsoft SQL Server 2012.

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

  • Pokrenite upit koji koristi TVP.

  • Upit je u neisjeжajuжa.

U ovom scenariju dolazi do pogreške planera koji ne daje rezultate, a upiti koji se izvode na istom rasporedu polako se izvode. Osim toga, u mapi zapisnika SQL Server mini izvatka.Kada se problem pojavi, prikazat će se poruka o pogrešci slična sljedećoj:

System.Data.SqlClient.SqlException (0x80131904): isteklo je vremensko ograničenje. Vremensko razdoblje proteklo prije dovršetka operacije ili poslužitelj ne reagira.at System.Data.SqlClient.SqlInternalConnection.OnError(Iznimka SqlException, Booleova breakConnection)u System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()u System.Data.SqlClient.TdsParserStateObject.ReadSniError(TdsParserStateObject stateObj, UInt32 error)at System.Data.SqlClient.TdsParserStateObject.ReadSni(DbAsyncResult asyncResult, TdsParserStateObject stateObj)at System.Data.SqlClient.TdsParserStateObject.ReadNetworkPacket()at System.Data.SqlClient.TdsParserStateObject.ReadByte()at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)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, Booleov returnStream, metoda niza, rezultat DbAsyncResult)na system.Data.SqlClient.SqlCommand.InternalExecuteNonQuery(rezultat DbAsyncResult, naziv metode niza, Booleov sendToPipe)at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()at TVPApp.Program.Main(String[] args)

Pogreška planera koji ne daje dobit zajedno s porukom o pogrešci sličnoj sljedećoj zapisuje se u zapisnik SQL Server pogreške:

<datum><vrijeme> poslužitelj pomoću verzije 'dbghelp.dll' verzije '4.0.5'<Datum><vrijeme> Poslužitelj ***Nije moguće dohvatiti kontekst niti za spid #<datum><vrijeme> Server * *******************************************************************************><2 Date><Time> Server *><6 Date><Time> Server * BEGIN STACK DUMP:><0 Date><Time> Server * <Date><Time> spid #><8 Date><Time> Server *><2 Datum><vrijeme> Poslužitelj * Neudajući Planer><6 Datum><Vrijeme> Poslužitelj *<Datum><Vrijeme> Poslužitelj * *******************************************************************************<Datum><Vrijeme> Server Stack Signature for the dump je 0x000000000000002C<Datum><vrijeme> Poslužitelj Vanjski izvadci 0x20000001.Vanjski proces izvatka nije vratio pogreške.<Datum><vrijeme> Poslužiteljski proces 0:0:0 (0x1670) Radni 0x0000000004EDE160 čini se da ne daje prinos na Scheduler 5. Vrijeme stvaranja niti: 13014210386757. Cpu niti aproksima: kernel 0 ms, korisnik 70106 ms. Korištenje procesa 16%. Stanje mirovanja sustava 77%. Interval: 70140 ms.<Datum><vrijeme> Poslužiteljski proces 0:0:0 (0x1670) Radni 0x0000000004EDE160 čini se da ne daje prinos na Scheduler 5. Vrijeme stvaranja niti:

Uzrok

Taj se problem pojavljuje zbog pogreške u modulu baze SQL Server 2012. Tekstni stupci u TVP-u implementiraju se kao umetnuti nizovi ili međuspremniki, a povećanje broja redaka povećava broj međuspremnika. Međutim, proces koji izdanja međuspremnika je dugotrajan. Stoga se prilikom operacija izdavanja i smanjivanja generira pogreška planera koji ne rezultira prinosom. Napomena Sličan je problem riješen u sljedećem članku Iz Microsoftove baze znanja. Međutim, paket kumulativnog ažuriranja opisan u članku nije za problem s prekoračenjem vremena upita.

2520808 Popravak: Pogreška planera koji ne daje dobit kada pokrenete upit koji koristi TVP u programu SQL Server 2008 ili u programu SQL Server 2008 R2 ako se koristi SQL Profiler ili SQL Server Prošireni događaji

Rješenje

Informacije o kumulativnom ažuriranju

Paket kumulativnog ažuriranja 5 za SQL Server 2012 Service Pack 1 (SP1)

Rješenje za taj problem prvi je put izdano u kumulativnom ažuriranju 5. Dodatne informacije o tome kako nabaviti ovaj paket kumulativnog ažuriranja za SQL Server 2012 potražite u članku iz Microsoftove baze znanja:

2861107 Paket kumulativnog ažuriranja 5 za SQL Server 2012Note Budući da su međuverzije kumulativne, svako novo izdanje popravka sadrži sve hitne popravke i sve sigurnosne popravke obuhvaćene prethodnim izdanjem popravka sustava SQL Server 2012. Preporučujemo da razmislite o primjeni najnovijeg izdanja za popravak koje sadrži taj hitni popravak. Za više informacija kliknite sljedeći broj članka da biste prikazali članak u Microsoftovoj bazi znanja:

2772858 Izdane SQL Server 2012. objavljene nakon izdavanja SQL Server 2012 Service Pack 1

Zaobilazno rješenje

Problem se zaobilazno može riješiti na sljedeće načine:

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

  • Kliknite da biste u definiciji praćenja očistili potvrdne okvire RPC:Starting i RPC:Completed.

Status

Microsoft je potvrdio da je to problem u Microsoftovim proizvodima koji su navedeni u odjeljku "Odnosi se na".

Potrebna vam je dodatna pomoć?

Želite dodatne mogućnosti?

Istražite pogodnosti pretplate, pregledajte tečajeve za obuku, saznajte kako zaštititi uređaj i još mnogo toga.