徵狀
假設您有一個資料表使用外鍵限制式設定來串聯刪除,而外鍵資料行的統計資料並未涵蓋資料表中的整個索引鍵值範圍 (例如:因為資料分配變更至資料表) 後,統計資料並未更新。 在此情境中,當您嘗試刪除對應到統計長條圖中未表示之索引鍵值的資料列,而查詢最佳化工具使用預設的基數預估時,刪除作業會比預期慢。 您可能也會注意到索引掃描工作是用來在參照資料表中尋找符合的列。
狀態
Microsoft 已確認<適用於>一節所列的 Microsoft 產品確實有上述問題。
解決方案
此問題在 SQL Server 的下列累積更新中已經修正:
注意: 只有在您開啟優化工具 Hotfix (透過資料庫範圍化組組選項、查詢提示或追蹤標號 4199) 時,才能啟用此修正程式。
關於 SQL Server 的累積更新:
SQL Server 的每個新累積更新都包含所有 Hotfix,以及上一個累積更新中包含的所有安全性修正。 查看 SQL Server 的最新累積更新:
因應措施
若要解決這個問題,請使用下列其中一個方法:
-
使用舊版基數預估。 詳細資訊請參閱 SQL Server (基數估計) 。
-
從外鍵定義移除串聯刪除,然後使用父資料表與子資料工作表之間的 JOIN 來執行刪除作業,以完成串聯刪除的同等作業。
-
在刪除資料之前,使用 FULLSCAN 更新父資料表的統計資料。
參考
了解 Microsoft 用來說明軟體更新的術語。