Symptomy
Załóżmy, że korzystasz z programu Microsoft SQL Server 2012 lub SQL Server 2014. W przypadku wystąpienia zakleszczenia w programie SQL Server jest wyświetlany następujący błąd naruszenia zasad dostępu, który jest spowodowany przez Monitor zakleszczenia:
sqldk! CSlotGroup::P shReleasesqldk! CSlotPageMgr:: Releasesqllang! commondeletesqllang! delete [] sqllang! CTraceDataSTVF::InternalReleaseResourcessqllang! TTableBase<CTraceDataSTVFInfo>:: ReleaseResourcessqllang! CTraceDataSTVF:: {dtor} sqllang! CTraceDataSTVF:: "skalarna usuwanie destructor'sqlmin! CSTVFInternal::Releasesqlmin! CQueryExecContext:: ~ CQueryExecContextsqlmin! CQueryInstance::ShutdownQueryExecContextsqlmin! CQueryScan::ShutdownQueryExecContextsqlmin! CQueryScan::D estroyQueryOnExceptionsqllang! CXStmtQuery::ShutdownOnExceptionsqllang! CXStmtQuery::FinishOnExceptionImpsqllang! GetInterruptTickssqllang! InterruptTicks<niepodpisany __int64>:: LoadTickssqllang! SOS_Ticks<InterruptTicks<niepodpisana __int64>,-3>:: LoadTickssqllang! ' CMsqlExecContext:: FExecute ':: ' 1 ':: catch $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
Po wystąpieniu naruszenia zasad dostępu do dziennika błędów programu SQL Server zostanie wyświetlony następujący komunikat o błędzie:
Data <> <godzina> identyfikatorze SPID<ID> przy użyciu "dbghelp. dll" w wersji 4.0.5 "<Date> <Time> Identyfikator SPID> <0 id> 0x0000007F8608E160, <Timeidentyfikator SPID =>id> <4, EC =ID> <Date>> <8. txt Date> <4 Data ID> <godzina> identyfikator SPID> <8 File PathID> * * * Dump FileName* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *>> <4>> <<Data <> <godzina> identyfikatorze SPID<ID> * <Date> <Time> identyfikatorSPID <><Date> <Time>ID> <8> * lokalizacja: qxcntxt. cpp: 1143 <Date> <Time> identyfikator SPID> <4ID> * Expression Time : !" W tym kodzie nie powinny być podniesione żadne wyjątki "<Date> <Time> Identyfikator SPID> <6 ID> * SPID: Identyfikator <><Date> <Time> identyfikator spid> <4 ID> * identyfikator procesu: 3556> <6 data> <godzina >identyfikatorze SPID><0 ID> Time * < Date> <Time > identyfikator spid><6 id> ( wejściowy bufor 37)-<Date> <time> ID Time> <02 0c >> <04 01 00 00 00 16 00 00 00 12 00 00 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 26 04 04 05 00 00> <> numeru SPID> <5 ID> * 00> <7 Date> <> numeru SPID > <1 identyfikator> * <Date> <Time> Identyfikator SPID> <7 identyfikatorze>. Time .. <Date> <>Data> <3ID> SPID IDIDIdentyfikator> <9> [info] tożsamość Begin End | Błąd wyniku stanu spekulacje przygotowany LazyCommit tylko do odczytu | Baza danych transakcji ThreadId | ReadSet WriteSet ScanSet punktu zapisu LogSizeRq | CommitDep TotalComm zależne 0 zależne od 1 2 zależne od 3, zależne od 5, niezależne od 6 | Lokalizacja obszaru | Data> <41> <godzina> identyfikatorze SPID> <45 ID> limitu czasu oczekiwania na proces zrzutu zewnętrznego 11800. Data <> <godzina> Identyfikator SPID> <1 ID> błąd: 17066; Data <> <Date>,Identyfikator> <7>, wiersz = 1143 nie można potwierdzić = '! Ten kod nie może podnieść żadnych wyjątków. Ten błąd może być związany z chronometrażem. Jeśli błąd będzie nadal występował po ponownym uruchomieniu instrukcji, użyj polecenia DBCC CHECKDB w celu sprawdzenia integralności bazy danych w strukturze strukturalnej lub ponownego uruchomienia serwera, aby upewnić się, że struktury danych w pamięci nie są uszkodzone.
Rozwiązanie
Informacje o aktualizacji zbiorczej
Ten problem został po raz pierwszy rozwiązany w poniższej zbiorczej aktualizacji programu SQL Server.
Każda nowa Zbiorcza aktualizacja programu SQL Server zawiera wszystkie poprawki i wszystkie poprawki zabezpieczeń uwzględnione w poprzedniej aktualizacji zbiorczej. Zalecamy pobranie i zainstalowanie najnowszych aktualizacji zbiorczych programu SQL Server:
Stan
Firma Microsoft potwierdziła, że jest to problem występujący w produktach firmy Microsoft wymienionych w sekcji "dotyczy".