使用 Microsoft 登录
登录或创建帐户。
你好,
使用其他帐户。
你有多个帐户
选择要登录的帐户。

症状

假设您使用的是 Microsoft SQL Server 2012 或 SQL Server 2014。 当 SQL Server 中出现死锁时,将收到由死锁监视器导致的以下访问冲突:

sqldk!CSlotGroup::P shReleasesqldk!CSlotPageMgr:: Releasesqllang! commondeletesqllang! delete [] sqllang!CTraceDataSTVF::InternalReleaseResourcessqllang!TTableBase<CTraceDataSTVFInfo>:: ReleaseResourcessqllang!CTraceDataSTVF::{dtor}sqllang!CTraceDataSTVF:: ' scalar 删除 destructor'sqlmin!CSTVFInternal::Releasesqlmin!CQueryExecContext:: ~ CQueryExecContextsqlmin!CQueryInstance::ShutdownQueryExecContextsqlmin!CQueryScan::ShutdownQueryExecContextsqlmin!CQueryScan::D estroyQueryOnExceptionsqllang!CXStmtQuery::ShutdownOnExceptionsqllang!CXStmtQuery::FinishOnExceptionImpsqllang!GetInterruptTickssqllang!InterruptTicks<未经签名的 __int64>:: LoadTickssqllang!SOS_Ticks<InterruptTicks<无符号 __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

出现访问冲突后,将从 SQL Server 错误日志收到以下错误消息:

<日期> <时间> Spid<ID> 使用 "dbghelp" 版本 "4.0.5 ID " <日期> <>的 Spid> <0 ID> * * 转储线程-spid = <ID>,EC = 0x0000007F8608E160> <4> <> > <8> <> * ID * * 将堆栈转储发送到 <文件路径>。 txt> <4日期> <时间> ID spid> <8 ID> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Time * * * * ID * * * * * * * * * * * * * * * * * * * * * * * * * * <日期> <时间>> <4 > <日期> <时间> spid<ID> * <日期> <> <><> <>> <8><> <>> <4> > <6> <>> <0>ID: !"此代码不应引发任何异常 <ID日期ID> <时间> Spid> <6 id> * spid: <Id><日期> <时间> Spid> <4 ID> * 进程 id: 3556> <6日期> <时间> spid><0 ID> * <日期> <Date>spid ><6 Id>*输入缓冲区37字节数 <> <>> <02 >> <04> <>> <08> &> <1 ID 01 00 00 00 ff 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> <时间> spid> <5 id> * 00> <7> <的>> <1 的> <> <的>> <7> <Time> <>> <3> ID> <5> <>DateDateTime> <9 ID> [INFO] Identity Begin End |状态结果错误 Speculate 已预准备 LazyCommit ReadOnly |事务数据库 ThreadId |ReadSet WriteSet ScanSet 保存点 LogSizeRq |CommitDep TotalComm Dependent 0 dependent dependent 1 依赖的第一个依赖关系3从属的第一个依赖关系 7 |区域位置 |> <41日期> <时间> Spid> <45 ID> 超时等待外部转储进程11800。 <日期> < spid> id> <1 错误:17066,严重性:16,状态: 1 。>日期<> <> SQL Server 断言: File:> <7 qxcntxt>,line = 1143 失败断言 = '! "此代码 "" 不应引发任何异常。 此错误可能与计时有关。 如果再次运行该语句后,该错误仍然存在,请使用 DBCC CHECKDB 检查数据库的结构完整性,或者重新启动服务器以确保内存中的数据结构未损坏。

解决方案

累积更新信息

在 SQL Server 的以下累积更新中,此问题首先已修复。

SQL Server 的每个新的累积更新均包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 我们建议你下载并安装 SQL Server 的最新累积更新:

状态

Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?
按“提交”即表示你的反馈将用于改进 Microsoft 产品和服务。 你的 IT 管理员将能够收集此数据。 隐私声明。

谢谢您的反馈!

×