徵狀
假設您的資料庫在 Microsoft SQL Server 2014 中包含大型資料列索引。 當您針對資料庫執行 DBCC CHECKDB 命令時,您會收到來自 SQL Server 錯誤記錄的下列錯誤訊息:
作業系統傳回錯誤665(無法在檔案系統不限制的情況下,無法完成要求的作業)在 [<磁片名稱>: \PROGRAM Files\Microsoft sql Server\MSSQL12。MSSQLSERVER\MSSQL\Data\XXXX.mdf'. SQL Server 錯誤記錄和系統事件記錄檔中的其他訊息,可能會提供更多詳細資料。 這是嚴重的系統層級錯誤狀況,會威脅資料庫完整性,必須立即修正。 完成完整資料庫一致性檢查(DBCC CHECKDB)。 此錯誤可能是由許多因素所造成;如需詳細資訊,請參閱 SQL Server 線上書籍。
當您針對具有列存儲索引的資料表執行 DBCC CHECKTABLE 命令時,會收到下列錯誤訊息:
Msg 0、Level 11、State 0、Line 0A 在目前命令上發生嚴重錯誤。 結果(如果有的話)應該捨棄。
同時,您會在錯誤記錄中收到下列錯誤訊息:
DBCC CHECKTABLE (<Table_Name>)由 DomainName\UserName 執行,因為錯誤狀態6而異常終止。 經過的時間:0小時3分36秒。
原因
之所以會發生此問題,是因為 SQL Server 列存儲索引功能的預回遷機制有缺陷。 這個缺陷會導致資料頁面不必要地填入可能導致過早作業系統665錯誤的快照資料庫。Note DBCC CHECKDB 命令會在內部自動建立資料庫快照。 當您手動建立資料庫快照,並執行數個使用資料列索引的查詢時,您可能會遇到相同的問題。
解決方案
Service pack 資訊
若要解決此問題,請取得 SQL Server 2014 的 Service Pack 1。
如需 SQL Server 2014 Service Pack 1 (SP1)的詳細資訊,請參閱 在 Sql server 2014 Service pack 1 中修正的錯誤。
累積更新資訊
此問題最初是在 SQL Server 的後續累積更新中修正。
每個新的 SQL Server 累計更新都包含所有的修正程式,以及前一個累積更新中所包含的所有安全性修正程式。 我們建議您下載並安裝最新的 SQL Server 累積更新:
狀態
Microsoft 已確認本篇文章<適用於>一節所列之 Microsoft 產品確實有上述問題。