Simptome
Să presupunem că utilizați Microsoft SQL Server 2012 sau SQL Server 2014. Atunci când apare un impas în SQL Server, primiți următoarea încălcare de acces cauzată de monitorul de blocări:
sqldk! CSlotGroup::P shReleasesqldk! CSlotPageMgr:: Releasesqllang! commondeletesqllang! Delete [] sqllang! CTraceDataSTVF::InternalReleaseResourcessqllang! TTableBase<CTraceDataSTVFInfo>:: ReleaseResourcessqllang! CTraceDataSTVF:: {Tabadtor} sqllang! CTraceDataSTVF:: ' scalară ștergerea destructor'sqlmin! CSTVFInternal::Releasesqlmin! CQueryExecContext:: ~ CQueryExecContextsqlmin! CQueryInstance::ShutdownQueryExecContextsqlmin! CQueryScan::ShutdownQueryExecContextsqlmin! CQueryScan::D estroyQueryOnExceptionsqllang! CXStmtQuery::ShutdownOnExceptionsqllang! CXStmtQuery::FinishOnExceptionImpsqllang! GetInterruptTickssqllang! InterruptTicks<nesemnat __int64>:: LoadTickssqllang! SOS_Ticks<InterruptTicks<nesemnată __int64>,-3>:: LoadTickssqllang! ' CMsqlExecContext:: FExecute ':: ' 1 ':: prinde $3msvcr100! _CallSettingFramemsvcr100! __CxxCallCatchBlockntdll! RcFrameConsolidationsqllang! CMsqlExecContext::FExecutesqllang! CSQLSource::Executesqllang! CStmtExecProc::XretLocalExecsqllang! CStmtExecProc::XretExecExecutesqllang! CXStmtExecProc::XretExecutesqllang! CExecStmtLoopVars::ExecuteXStmtAndSetXretReturnsqllang! CMsqlExecContext:: ExecuteStmts<1,0>sqllang! CMsqlExecContext::FExecutesqllang! CSQLSource::Executesqllang! ExecuteSqlsqllang! CSpecProc::ExecuteSpecialsqllang! CSpecProc:: Executesqllang! process_requestsqllang! process_commandssqldk! SOS_Task::P Aram:: Executesqldk! SOS_Scheduler:: RunTasksqldk! SOS_Scheduler::P rocessTaskssqldk! SchedulerManager::WorkerEntryPointsqldk! SystemThread::RunWorkersqldk! SystemThreadDispatcher::P rocessWorkersqldk! SchedulerManager::ThreadEntryPointkernel32! BaseThreadInitThunkntdll! RtlUserThreadStart
După încălcarea accesului, primiți următorul mesaj de eroare din jurnalul de erori SQL Server:
<data> <timp> SPID<ID> folosind ' dbghelp. dll ' version ' 4.0.5 ' <data> <timp> SPID> <0 id> * * dump thread-SPID = <ID>, EC = 0x0000007F8608E160> <4 data> <> SPID> <8 ID> * * * stivă Dump fiind trimis la <fișier> <\> dump nume de utilizator. txt> <4 data > < ora > SPID Time> <8 ID > * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * <data Date> <> spid> ID < * începe stiva Dump:> <4 <data> <timp> SPID<id> * <dată> <timp> SPID <ID><dată> <timp> SPID> <8 ID> * <data> <de timp> SPID> <4 ID> * locație: qxcntxt. CPP: 1143> <6 dată> <dată> SPID> <0 ID> * expresie : !" Nu ar trebui să fie ridicate excepții prin acest cod "<dată> <dată> SPID> <6 id> * spid: <id><dată> <timp> SPID> <4 id> * proces ID: 3556> <6 data> <timp> spid><0 ID> * <dată> <timp> spid><6 ID> * tampon de intrare 37 bytes-<data> <timp> SPID> <02 ID> * 16 00 00 00 12 00 00 00 02 00 00 00 00 00 00 00 00 00> <04 data> <timp> SPID> <08 ID> * ÿÿ & 01 00 00 00 ff ff 0c 00 00 00 00 00 26 04 04 05 00 00> <1 dată> <timp> SPID> <5 id> * 00> <7 dată> <timp> SPID> <1 ID> * <dată> <timp> SPID> <7 ID> *.. . <dată> <timp> SPID> <3 ID> stivă semnătură pentru dump este 0x000000014202549F> <5 dată> <dată> SPID> <9 ID> [Info] Identity Begin end | Eroare de rezultat a stării speculează preparat LazyCommit ReadOnly | Baza de date de tranzacții ThreadId | ReadSet WriteSet ScanSet savepoint LogSizeRq | CommitDep TotalComm dependent de 0 dependent de 1 dependent de 2 dependent de 3 dependente de 4 dependente de 5 dependente 6 | Amplasarea zonei |> <41 dată> <dată> SPID> <45 ID> expirare așteptare pentru procesul de dumping extern 11800 . <dată> <timp> SPID> <1 ID> eroare : 17066, severitate: 16, stat: 1. <dată> <timp> SPID> <7 ID> SQL Server afirmație: File: <qxcntxt. cpp>, line = 1143 a eșuat afirmația = '! " Nu ar trebui să fie ridicate excepții prin acest cod "'. Această eroare poate avea legătură cu sincronizarea. Dacă eroarea persistă după ce Reexecutați instrucțiunea, utilizați DBCC CHECKDB pentru a verifica baza de date pentru integritatea structurală sau reporniți serverul pentru a vă asigura că structurile de date din memorie nu sunt deteriorate.
Rezolvare
Informații despre actualizarea cumulativă
Problema a fost remediată pentru prima dată în următoarea actualizare cumulativă de SQL Server.
Fiecare nouă actualizare cumulativă pentru SQL Server conține toate remedierile rapide și toate remedierile de securitate care au fost incluse în actualizarea cumulativă anterioară. Vă recomandăm să descărcați și să instalați cele mai recente actualizări cumulative pentru SQL Server:
Stare
Microsoft a confirmat că aceasta este o problemă în produsele Microsoft enumerate în secțiunea „Se aplică la”.