KB2938464 - 修正:在 SQL Server 2014 中,當您使用包含大型運算式的查詢建立本機編譯的預存程序時,無法對查詢/程序使用 showplan_xml

Applies To
SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

症狀

假設您在 Microsoft SQL Server 2014 中建立一個原生編譯的預存程序,其查詢包含具有超過 256 個運算子的大型運算式。 當您嘗試在查詢或程序上使用 showplan_xml 時,收到下列錯誤:

注意

Msg 41322, Level 16, State 33, Procedure sp_name>, Line<<line_number>
MAT/PIT 匯出/匯入在記憶體最佳化表格或原生編譯的預存程序中發生失敗,其資料庫<>識別碼識別碼識別碼編號在資料庫識別碼<識別碼中>。 錯誤碼已0x88000015。

原因

發生此問題的原因是 SQL Server 2014 中的缺陷。

解決方式

套用 Hotfix 之後,showplan_xml具有大量運算子的原生程序將會成功。
此問題已先在下列 SQL Server 累積更新中修正。

SQL Server 2014 累積更新 1 /zh-tw/help/2931693

關於 SQL Server 的累積更新

SQL Server 的每個新累積更新都包含所有 Hotfix 和先前累積更新的所有安全性修正程式。 查看 SQL Server 的最新累積更新:

      

因應措施

若要解決此問題,請使用下列因應措施:

  • 將運算式分割成多個子運算式。
  • 使用括號明確強制運算式巢狀結構,以建立寬而淺的運算式樹狀結構,而不是深度巢狀的運算式樹狀結構。

狀態

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