KB3151176 - 修正:2014 SQL Server 中涉及純量使用者定義函數的查詢謂詞低估了列數

套用到
SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

症狀

請考慮以下案例:

  • 你有一個查詢包含一個參數化標量使用者定義函數的謂詞。
  • 有多種輸入參數值的組合,可能由此使用者定義函式產生相同結果。
  • SQL Server 使用新的基數估計器,其中資料庫相容模式設為 120。

在這種情況下,當你執行查詢時,你會因為查詢計畫中使用者定義函式的謂詞列數估算錯誤而導致查詢效能不佳。

解決方式

此問題首次在以下 SQL Server 累積更新中被修正:

累積更新 6 for SQL Server 2014 Service Pack 1
        
安裝這個累積更新套件後,你必須啟用追蹤旗標 4199。 你可以加入 -T4199 啟動參數。 或者,你可以在特定會話中使用 dbcc traceon (4199) 陳述句。

關於 SQL Server 的累積更新

每次新的 SQL Server 累積更新都包含了之前累積更新中包含的所有熱修補與安全修補。 請查看 SQL Server 的最新累積更新:

SQL Server 2014 最新累積更新
      

狀態

Microsoft 已確認這是「適用對象」一節中列出的 Microsoft 產品中的問題。

參考資料

了解 Microsoft 用來描述軟體更新的 術語 。