徵狀
當您執行的並行查詢涉及 Microsoft SQL Server 2014 中的合併連接時,會發生斷言例外狀況,而且您會收到來自 SQL Server 錯誤記錄的下列錯誤訊息:
<日期> <時間> Spid<ID> 使用 "dbghelp" 版本 "4.0.5" <日期> <>的 spid> <0識別碼> * * Dump thread-spid = <id>,EC = 0X0000007F8608E160> <4 * * 堆疊Time轉儲> <>磁片名稱> <8: \Program Files\Microsoft SQL Server\MSSQL12。MSSQLSERVER\MSSQL\LOG\SQLDump0002.txt> <2日期> <時間> spid> <6 ID> * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * Time <日期> <時間> spid> <2 ID> * <日期> <> spid > <8 id> * 開始堆疊轉儲: <日期> <> spid<id> <> <> Spid<Id>< *> <日期Time> Date時間> <6 spid> id <ID * 位置: qxcntxt。 cpp: 1143> <4日期> <時間> spid> <8 ID> * 運算式:! "此程式碼 "<日期Time> <時間> spid> <4 ID> * spid: <識別碼><日期> <> Spid> <2 id> Time * 進程識別碼: 3556> <4日期> <時間> spid> <8 ID> * <日期> <>spid><4 ID> *輸入緩衝區37位元組-<日期> <>spid> <00> * 16 00 00 00 12 00 00 00 02 00 00 00 00 00 00 00 00 00> <02 > <>> <06> & 00 00 00 00 00 26 04 04 05 00 0001 00 00 00> <時間> spid> <3 id> * 00> <5日期> <時間> spid> <9識別碼> * <日期> <> spid> <5識別碼> * ... <日期> <> 的 spid > <1 id>> <3 Time> <Time> <7識別碼> [INFO] 身分識別開始結束 | Speculate 已準備好 LazyCommit ReadOnly | 的狀態結果錯誤 事務資料庫 ThreadId | ReadSet WriteSet ScanSet 點 LogSizeRq |CommitDep TotalComm 相依0相依1相依于第3相依的4相依于第7個相依于 7 | 區域位置 |> <9日期> <時間> Spid> <43 id> 超時等候外部轉儲程式11800。 <日期> <時間> spid> <49 id> 錯誤:17066、嚴重性:16、State: 1. <日期> <時間> spid> <5 Id> SQL Server Assertion: File: <qxcntxt>,line = 1143 失敗斷言 = '!」此程式碼 "" 不應引發任何例外狀況。 此錯誤可能是與時間有關的。 如果在重新執行語句後發生錯誤,請使用 DBCC CHECKDB 來檢查資料庫的結構完整性,或重新開機伺服器以確保記憶體中資料結構未損毀。
解決方案
這個問題首先是在 SQL Server 的下列累積更新中修正。
SQL Server 2014 累積更新5 /en-us/help/3011055
每個新的 SQL Server 累計更新都包含所有的修正程式,以及前一個累積更新中所包含的所有安全性修正程式。 查看 SQL Server 的最新累計更新:
狀態
Microsoft 已確認本篇文章<適用於>一節所列之 Microsoft 產品確實有上述問題。