Gäller förSQL Server 2012 Developer SQL Server 2012 Enterprise SQL Server 2012 Standard

PROGRAMFEL #: 187868 (Innehållsunderhåll)VSTS: 1340145

Microsoft distribuerar korrigeringsfiler för Microsoft SQL Server 2012 i en nedladdningsbar fil. Eftersom korrigeringar är kumulativa innehåller varje ny utgåva innehåller alla snabbkorrigeringar och alla säkerhetsuppdateringar som ingår i föregående SQL Server 2012 uppdaterar release.

Symptom

Föreställ dig följande:

  • Du skapar en lagrad procedur som använder tabellvärderade parametrar (TVP) i Microsoft SQL Server 2012.

  • Du använder Profiler för SQL eller SQL Server Extended händelser för att fånga de RPC: starta och RPC: slutförd händelser.

  • Du kör en fråga som använder TVP.

  • Frågan på grund av timeout.

I det här fallet en icke-framställning av Schemaläggaren fel uppstår och frågor som körs på samma Schemaläggaren körs långsamt. Dessutom skapas en mini dumpfilen i SQL Server-loggmapp.När problemet uppstår visas ett felmeddelande av följande slag:

System.Data.SqlClient.SqlException (0x80131904): Tidsgränsen har överskridits. Tidsgränsen uppnåddes slutförs eller om servern svarar inte.vid System.Data.SqlClient.SqlInternalConnection.OnError (SqlException-undantag, booleska breakConnection)vid System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning()vid System.Data.SqlClient.TdsParserStateObject.ReadSniError (TdsParserStateObject stateObj, UInt32 fel)vid System.Data.SqlClient.TdsParserStateObject.ReadSni (DbAsyncResult asyncResult, TdsParserStateObject stateObj)vid System.Data.SqlClient.TdsParserStateObject.ReadNetworkPacket()vid System.Data.SqlClient.TdsParserStateObject.ReadByte()vid System.Data.SqlClient.TdsParser.Run (RunBehavior runBehavior, SqlCommand-cmdHandler, SqlDataReader dataström, BulkCopySimpleResultSet, bulkCopyHandler, TdsParserStateObject stateObj)vid System.Data.SqlClient.SqlCommand.FinishExecuteReader (SqlDataReader ds, RunBehavior runBehavior, sträng resetOptionsString)vid System.Data.SqlClient.SqlCommand.RunExecuteReaderTds (CommandBehavior cmdBehavior, RunBehavior runBehavior, booleska returnStream, booleska asynkron)vid System.Data.SqlClient.SqlCommand.RunExecuteReader (CommandBehavior cmdBehavior, RunBehavior runBehavior, booleska returnStream, String metod, DbAsyncResult resultat)vid System.Data.SqlClient.SqlCommand.InternalExecuteNonQuery (DbAsyncResult-resultat, methodName sträng, booleska sendToPipe)vid System.Data.SqlClient.SqlCommand.ExecuteNonQuery()vid TVPApp.Program.Main (String [] args)

Icke-framställning av Schemaläggaren fel och ett felmeddelande av följande slag loggas i felloggen för SQL Server:

< Datum >< tid > Server med 'dbghelp.dll' version '4.0.5'< Datum >< tid > Server *** det gick inte att läsa trådkontext för spid #<Date><Time> Server * *******************************************************************************< Datum >< tid > Server *< Datum >< tid > Server * BÖRJA stackdump:< Datum >< tid > Server * < datum >< tid > spid #< Datum >< tid > Server *< Datum >< tid > Server * icke-framställning av Schemaläggaren< Datum >< tid > Server *<Date><Time> Server * *******************************************************************************< Datum >< tid > Server Stack signatur för dumpning är 0x000000000000002CKoden < datum >< tid > Server externa dump process avkastning 0x20000001.Externa dump process returnerade inga fel.< Datum >< tid > serverprocessen 0:0:0 (0x1670) arbetare 0x0000000004EDE160 verkar vara icke-framställning om Scheduler 5. Tråden skapades: 13014210386757. Används ca tråd CPU: kernel 0 ms användaren 70106 fr. Process nyttjande 16%. System Idle 77%. Intervall: 70140 ms.< Datum >< tid > serverprocessen 0:0:0 (0x1670) arbetare 0x0000000004EDE160 verkar vara icke-framställning om Scheduler 5. Tråden skapades:

Orsak

Det här problemet beror på ett fel i databasmotorn för SQL Server 2012. Textkolumner i TVP implementeras som infogar strängar eller buffertar och en ökning av antalet rader ökar antalet buffertar. Den process som frigör buffertar är dock tidskrävande. Därför ett icke-framställning av Schemaläggaren fel genereras när släpper och förminska åtgärder inträffar.Obs! Ett liknande problem har åtgärdats i följande artikel i Microsoft Knowledge base. Det kumulativa uppdateringspaketet som beskrivs i artikeln är dock inte på en fråga timeout-problem.

2520808 KORRIGERA: icke-framställning av Schemaläggaren fel när du kör en fråga som använder en TVP i SQL Server 2008 R2 eller i SQL Server 2008 om du använder SQL-Profiler eller SQL Server Extended händelser

Lösning

Information om Kumulativ uppdatering

Kumulativt uppdateringspaket 5 för SQL Server 2012 Service Pack 1 (SP1)

Korrigeringsfil för problemet gavs först ut i den kumulativa uppdateringen 5. Mer information om hur du skaffar den kumulativa uppdateringspaket för SQL Server 2012 klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:

2861107 kumulativ uppdateringspaket 5 för SQL Server 2012Obs! Eftersom byggen är kumulativa, så innehåller varje ny version av korrigeringsfilen alla snabbkorrigeringar och den rättar till alla säkerhetskorrigeringar som ingår i föregående SQL Server 2012 release. Vi rekommenderar att du använder den senaste utgåvan av korrigering som innehåller den här snabbkorrigeringen. För mer information klickar du på följande artikelnummer och läser artikeln i Microsoft Knowledge Base:

2772858 i SQL Server 2012 bygger som har getts ut efter SQL Server 2012 Service Pack 1

Temporär lösning

Undvik det här problemet genom att använda någon av följande metoder:

  • Använd inte SQL-Profiler eller SQL Server Extended händelser.

  • Avmarkera den RPC: starta och RPC: klar kryssrutor i trace-definition.

Mer Information

Den här korrigeringen gäller inte för SQL Server 2008 eller SQL Server 2008 R2 när denna KB publiceras. Om alla användare har samma problem i SQL Server 2008 eller SQL Server 2008 R2 även efter att användaren installerat paket som beskrivs i följande artikel, verifiera om det finns en timeout för frågan och avgör om timeout-värdet kan lösas. I annat fall skicka en begäran om att använda den här korrigeringsfilen för SQL Server 2008 eller SQL Server 2008 R2.

2520808 KORRIGERA: icke-framställning av Schemaläggaren fel när du kör en fråga som använder en TVP i SQL Server 2008 R2 eller i SQL Server 2008 om du använder SQL-Profiler eller SQL Server Extended händelser

Information för anropsstacken

sqlmin!CLinkedMap<__int64,CCheckReadersAndWriters::CCounts>::FLookup+0x29sqlmin!CCheckReadersAndWriters::Release+0x69sqlmin!CMainIlb::{dtor}+0x3dsqlmin!CMainIlb::`scalar deleting destructor'+0x3dsqlmin!CBlobHandleFactoryMain::ReleaseILockBytes+0x13sqlmin!CMainIlb::Release+0xf0sqllang!CTraceRpcBinaryStream::~CTraceRpcBinaryStream+0x80sqllang!CTraceTvpData::{dtor}+0x14sqllang!CTraceTvpData::`scalar deleting destructor'+0x1esqllang!CRpcTraceHelper::CleanUpTraceTvpData+0x33sqllang!CRpcTraceHelper::~CRpcTraceHelper+0x70sqllang!CRPCExecEnv::~CRPCExecEnv+0x2absqllang!CRPCExecEnv::`scalar deleting destructor'+0x14sqllang!process_request+0x10b1sqllang!process_commands+0x51csqldk!SOS_Task::Param::Execute+0x21esqldk!SOS_Scheduler::RunTask+0xa8sqldk!SOS_Scheduler::ProcessTasks+0x299sqldk!SchedulerManager::WorkerEntryPoint+0x261sqldk!SystemThread::RunWorker+0x8fsqldk!SystemThreadDispatcher::ProcessWorker+0x3c8sqldk!SchedulerManager::ThreadEntryPoint+0x236kernel32!BaseThreadInitThunk+0xdntdll!RtlUserThreadStart+0x1d  
sqlmin!CLinkedMap<__int64,CCheckReadersAndWriters::CCounts>::FDelete+0x34sqlmin!CCheckReadersAndWriters::Release+0xfbsqlmin!CMainIlb::{dtor}+0x3dsqlmin!CMainIlb::`scalar deleting destructor'+0x3dsqlmin!CBlobHandleFactoryMain::ReleaseILockBytes+0x13sqlmin!CMainIlb::Release+0xf0sqllang!CTraceRpcBinaryStream::~CTraceRpcBinaryStream+0x80sqllang!CTraceTvpData::{dtor}+0x11sqllang!CRpcTraceHelper::CleanUpTraceTvpData+0x55sqllang!CRpcTraceHelper::TracePostExec+0x1bfsqllang!CRPCExecEnv::OnExecFinish+0xaasqllang!CProtocolHeaderInfo::{dtor}+0xffffffff`ffb158e2sqllang!process_request+0x764sqllang!process_commands+0x51csqldk!SOS_Task::Param::Execute+0x21esqldk!SOS_Scheduler::RunTask+0xa8sqldk!SOS_Scheduler::ProcessTasks+0x29asqldk!SchedulerManager::WorkerEntryPoint+0x261sqldk!SystemThread::RunWorker+0x8fsqldk!SystemThreadDispatcher::ProcessWorker+0x3c8sqldk!SchedulerManager::ThreadEntryPoint+0x236kernel32!BaseThreadInitThunk+0x1antdll!RtlUserThreadStart+0x1d 

Status

Microsoft har bekräftat att detta är ett problem i Microsoft-produkterna som nämns i avsnittet "Gäller".

Author: jannawWriter: v-yipliTeknisk granskare: pradm; jannaw; hozhanEditor: v-mordew

Behöver du mer hjälp?

Vill du ha fler alternativ?

Utforska prenumerationsförmåner, bläddra bland utbildningskurser, lär dig hur du skyddar din enhet med mera.