症状
当你在 Microsoft SQL Server 2014 中执行涉及合并联接的并行查询时,出现断言异常,并且你收到来自 SQL Server 错误日志的以下错误消息:
<日期> <时间> Spid<ID> 使用 "dbghelp" 版本 "4.0.5" <日期> <>的 spid> <0 id> * * 转储线程-spid = <ID>,EC = 0x0000007F8608E160> <4> <>> <8的> <> * * * 将堆栈转储发送到的磁盘名称: \Program Files\Microsoft SQL Server\MSSQL12。MSSQLSERVER\MSSQL\LOG\SQLDump0002.txt> <2日期> <时间> spid> <6 ID> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * <ID日期> <时间ID> spid> <2 id> * <> <> > <8> <> <><> <> <Date> <><> <>> <6 ID> <> <>> <2>的DateTimeqxcntxt 。 ID cpp: 1143> <4日期> <Time> spid> <8 ID> * 表达式:! " Date此代码不应引发任何异常 <ID日期ID> <时间> Spid> <4 id> * spid: <Id><日期> <时间> Spid> <2 ID> * 进程 id: 3556> <4日期> <时间> spid> <8 ID> * <日期> <Date>的spid ><4 Id>*输入缓冲区37字节数 <> <>> <00 >> <02> <>> <06> &> <09 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> <3 id> * 00> <5> <的>> <9 的> <> <的>> <5> <Time> <>> <1> ID> <3> <>Date的的DateTime> <7 ID> [INFO] Identity Begin End | 状态结果错误 Speculate 已预准备 LazyCommit ReadOnly | 事务数据库 ThreadId | ReadSet WriteSet ScanSet 保存点 LogSizeRq |CommitDep TotalComm Dependent 0 dependent dependent 1 依赖的第一个依赖关系3从属的第一个依赖关系 7 | 区域位置 |> <9日期> <时间> Spid> <43 ID> 超时等待外部转储进程11800。 <日期> < spid> id> <49 错误:17066,严重性:16,状态: 1 。>日期<> <> SQL Server 断言: File:> <5 qxcntxt>,line = 1143 失败断言 = '! "此代码 "" 不应引发任何异常。 此错误可能与计时有关。 如果再次运行该语句后,该错误仍然存在,请使用 DBCC CHECKDB 检查数据库的结构完整性,或者重新启动服务器以确保内存中的数据结构未损坏。
解决方案
此问题首先在 SQL Server 的以下累积更新中修复。
SQL Server 2014 累积更新5 /en-us/help/3011055
SQL Server 的每个新的累积更新均包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL Server 的最新累积更新:
状态
Microsoft 已确认这是在“适用范围”部分中列出的 Microsoft 产品存在的问题。