症狀
請考慮以下案例:
- 您的查詢在 SQL Server 2014 或 2016 中的唯一 GUID 資料行上使用非相等述詞。
- 統計資料會使用預設取樣來更新。 或者,在上次統計資料更新之後,系統會在表格中插入新列。
- SQL Server 使用新基數估計器,其中資料庫相容模式設定為 120。
- GUID 值會非均勻地分佈在整個資料表中。
在此案例中,當您執行查詢時,可能會因為查詢計劃中述詞的列數估計不正確而導致效能不佳。
解決方式
此問題已先在下列 SQL Server 累積更新中修正:
SQL Server 2014 Service Pack 1 的累積更新 6
SQL Server 2016 累積更新 1
安裝此累積更新套件之後,您必須啟用追蹤旗標 4199。 若要這樣做,您可以新增 -T4199 啟動參數。 或者,您可以針對特定工作階段使用 dbcc traceon (4199) 陳述式。
關於 SQL Server 的累積更新
SQL Server 的每個新累積更新都包含所有 Hotfix 和先前累積更新的所有安全性修正程式。 查看 SQL Server 的最新累積更新:
適用於 SQL Server 2014 的最新累積更新
適用於 SQL Server 2016 的最新累積更新
狀態
Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。
參考資料
瞭解 Microsoft 用來說明軟體更新的 術語 。