Microsoft levitab Microsoft SQL Server 2012 Kiirparandusi ühe allalaaditava faili. Et parandused on kumulatiivsed, sisaldab iga uus kõiki Kiirparandusi ja kõik turvavärskendused, mis lisandusid eelmise SQL Server 2012 uuendatud versiooni.
Sümptomid
Kujutage ette järgmist stsenaariumi.
-
Saate luua salvestatud protseduuri, mis kasutab tabeli hinnatud parameetri (TVP) Microsoft SQL Server 2012.
-
Kasutate SQL Profiler või SQL serveri laiendatud sündmused jäädvustada ning RPC: alates ja RPC: lõpule sündmused.
-
Päringu, mis kasutab TVP käivitamine.
-
Päringu ajalõpp.
Selle stsenaariumi puhul mitte saades ajasti tõrge ilmneb ja päringud, mis töötab sama Toiminguajasti on aeglased. Lisaks mini-tõmmisefaili luuakse SQL serveri logi kausta.
Kui see probleem ilmneb, saate tõrketeate, mis sarnaneb järgmisega:
System.Data.SqlClient.SqlException (0x80131904): Ajalõpp on aegunud. Aja möödumist enne toimingu sooritamist või server ei reageeri.
at System.Data.SqlClient.SqlInternalConnection.OnError (SqlException erand, Boolean breakConnection)
at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()
at System.Data.SqlClient.TdsParserStateObject.ReadSniError (TdsParserStateObject stateObj, UInt32 tõrge)
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, Boole'i asünkroonne)
at System.Data.SqlClient.SqlCommand.RunExecuteReader (CommandBehavior cmdBehavior, RunBehavior runBehavior, Boolean returnStream, String meetod, DbAsyncResult tulemus)
at System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery (DbAsyncResult tulemus, String methodName, Boole'i sendToPipe)
at System.Data.SqlClient.SqlCommand.ExecuteNonQuery()
at TVPApp.Program.Main (String [] args)
Mitte saades ajasti tõrge ja kuvatakse tõrketeade, mis sarnaneb järgmisega logitakse SQL Server error log:
< Kuupäev >< aeg > serveri kasutamine "dbghelp.dll" versiooni "4.0.5"
< Kuupäev >< aeg > Server *** ei saanud teemat seoses jaoks spid #
<Date><Time> Server * *******************************************************************************
< Kuupäev >< aeg > Server *
< Kuupäeva >< aeg > Server * alustada PINU TÕMMIS:
< Kuupäev >< aeg > Server * < kuupäev >< aega > spid #
< Kuupäev >< aeg > Server *
< Kuupäev >< aeg > Server * mitte saades ajasti
< Kuupäev >< aeg > Server *
<Date><Time> Server * *******************************************************************************
< Kuupäev >< aeg > serveri pinu allkiri dump on 0x000000000000002C
< Kuupäeva >< aeg > Server väline dump protsessi tagasi kood 0x20000001.
Väline dump protsessi tagasi vigu.
< Kuupäev >< aeg > Serveriprotsessi 0:0:0 (0x1670) töötaja 0x0000000004EDE160 näib olevat mitte saades ajasti 5. Lõime loomise ajal: 13014210386757. Umbes jutulõnga CPU kasutatud: tuuma 0 ms kasutaja 70106 ms. protsessi kasutamine 16%. Süsteemi jõudeoleku 77%. Intervall: 70140 ms.
< Kuupäev >< aeg > Serveriprotsessi 0:0:0 (0x1670) töötaja 0x0000000004EDE160 näib olevat mitte saades ajasti 5. Lõime loomise ajal:
Põhjus
See probleem ilmneb SQL Server 2012 andmebaasi mootori tõrke tõttu. Tekst veergudes TVP rakendatakse nagu stringe või puhvrite ja ridade arvu suurenemine suurendab puhvrite arv. Siiski on aeganõudev protsess, mis vabastab puhvrite. Seega, mitte saades ajasti tõrge luuakse kui vabastada ja kahandamise toiminguid tekkida.
Märkus. Sarnase probleemi on käsitletud järgmises Microsofti teabebaasi (Knowledge Base) artiklis. Siiski ei ole artiklis kirjeldatud koondvärskenduspaketiga päringu ajalõpp probleemi.
2520808 FIX:-saades ajasti tõrge, kui käivitate päringu, mis kasutab SQL Server 2008 või SQL Server 2008 R2 TVP SQL Profiler või SQL serveri laiendatud sündmused kasutamisel
Lahendus
Koondvärskenduse teave
SQL Server 2012 Service Pack 1 (SP1) koondvärskenduse pakett 5
Sellele probleemile lahenduse anti esmakordselt välja kumulatiivne Update 5. Selle kumulatiivse värskenduspaketi SQL Server 2012 hankimise kohta lisateabe saamiseks klõpsake Microsofti teabebaasi artikli kuvamiseks järgmist artiklinumbrit:
2861107 kumulatiivne värskendus 5 paketi SQL Server 2012Märkus. Et järgud on kumulatiivsed, iga uus versioon sisaldab kõiki Kiirparandusi ja kõiki turvaparandusi, mis lisandusid eelmise SQL Server 2012 paranduse väljalaskes. Soovitame rakendada kõige uuema parandustepaketi, mis sisaldab seda kiirparandust. Lisateabe saamiseks klõpsake Microsofti teabebaasi artikli kuvamiseks järgmist artiklinumbrit:
2772858 SQL Server 2012 järgud, mis anti välja pärast SQL Server 2012 Service Pack 1
Lahendus
Selle probleemi lahendamiseks kasutage ühte järgmistest.
-
Ärge kasutage SQL Profiler või SQL serveri laiendatud sündmused.
-
Tühjendage selle RPC: alates ja RPC: lõpule jälgede definitsiooni märkeruudud.
Olek
Microsoft on kinnitanud, et see probleem esineb jaotises "Kehtib järgmiste toodete kohta" loetletud Microsofti toodetel.