徵狀
請試想下列案例:
-
您有一個非常大的 Filestream 表格。
-
您會在 Filestream 表格中執行刪除查詢的資料列,這會建立一個成本高昂的查詢方案,例如,由內部連接所篩選的資料列到系統中的另一個大型資料表。
-
[查詢最佳化工具] 會選取並存執行方案。
在這種情況下,將會發生 ssertion,而且您可能會在 SQL Server 錯誤記錄中收到類似以下所示的錯誤訊息:
DateTime spid SpidNumber 錯誤:5553,嚴重性:20,狀態:6。
DateTime spid SpidNumber SQL Server 內部錯誤。 FILESTREAM 管理器無法繼續使用目前的命令。
狀態
Microsoft 已確認<適用於>一節所列的 Microsoft 產品確實有上述問題。
解決方案
此問題已在 SQL Server 的下列累積更新中修正:
關於 SQL Server 的累積更新:
每個新的 SQL Server 累計更新包含所有 修復程式及前一個版本所包含的所有安全性修正程式 累加更新。 查看 SQL Server 的最新累計更新:
因應措施
To 此問題的解決方式,you 可以使用下列方法:
將內部聯結查詢移至個別的語句,並將結果儲存至臨時資料表。 然後執行由臨時資料表中的專案篩選的刪除查詢。 此外,您也可以增加並行性的成本閾值,強制優化程式將查詢方案序列化。
例如:
在 RefTable 中,選取 RefTable 中的 [#T 別名],從 OuterTable 內連接 DB-LIBRARY. dbo. RefTable。 Alias = OuterTable. 別名
其中 OuterTable > 30006 和 OuterTable 的別名 < 30010
從資料庫. dbo 刪除。張其中的別名在(從 #T 選取 *)
參考
瞭解相關術語 Microsoft 使用來描述軟體更新。