徵狀
假設您使用包含大型運算式的查詢來建立本機編譯的儲存程式,而這個大型運算式在 Microsoft SQL Server 2014 中包含超過256個運算子。 當您嘗試在查詢或程式上使用 showplan_xml 時,會收到下列錯誤:
Msg 41322,階層16,狀態33,程式<sp_name>,列<line_number>的階層/PIT 匯出/匯入在資料庫 id<id 編號>中,發現記憶體優化資料表或本機編譯的儲存程式失敗(含物件識別碼<id 號碼)>。 錯誤代碼為0x88000015。
原因
這個問題是由 SQL Server 2014 中的缺陷所造成。
解決方案
套用熱修復程式後,對於具有大量運算子的原生程式,showplan_xml 將會成功。此問題最初是在 SQL Server 的後續累積更新中修正。
SQL Server 2014 的累積更新1 /en-us/help/2931693
每個新的 SQL Server 累計更新都包含所有的修正程式,以及前一個累積更新中所包含的所有安全性修正程式。 查看 SQL Server 的最新累計更新:
因應措施
若要解決此問題,請使用下列因應措施:
-
將運算式分割成多個子運算式。
-
使用括弧來明確地強制執行運算式的嵌套,以產生寬但淺的運算式樹狀結構,而不是深嵌套的運算式樹狀結構。
狀態
Microsoft 已確認本篇文章<適用於>一節所列之 Microsoft 產品確實有上述問題。