KB4038113 - 修正:EXCEPTION_ACCESS_VIOLATION SQL Server 中使用 sys.dm_os_memory_objects 陳述式查詢

套用到
SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2017 on Windows (all editions) SQL Server 2014 Service Pack 2 - duplicate (do not use) SQL Server 2014 Developer - duplicate (do not use) SQL Server 2014 Enterprise - duplicate (do not use) SQL Server 2014 Enterprise Core - duplicate (do not use) SQL Server 2014 Standard - duplicate (do not use)

症狀

當你在SQL Server監控工具中執行「select contention_factor from sys.dm_os_memory_objects」語句來監控SQL Server資料庫時,SQL Server錯誤日誌中會記錄類似以下錯誤訊息:

注意

日期/時間 SPID SqlDumpExceptionHandler:Process 56 產生了致命的例外 c0000005 EXCEPTION_ACCESS_VIOLATION。 SQL Server 正在終止這個流程。
日期/時間SPID * *******************************************************************************
日期/時間SPID *
日期/時間SPID * 開始堆疊傾倒:
日期/時間SPID * 日期/時間SPID
日期/時間SPID *
Date/TimeSPID * 例外位址 = 00007FFB8EE5015D 模組 (sqlmin+000000000004F015D)
Date/TimeSPID * 例外代碼 = c0000005 EXCEPTION_ACCESS_VIOLATION
日期/時間SPID * 存取違規發生 讀取位址 0000000000000020
Date/TimeSPID * 輸入緩衝區 136 位元組 -
Date/TimeSPID * 從sys.dm_os_memory_objects中選擇contention_factor;

解決方式

此修正包含於以下 SQL Server 的累積更新中:

累積更新1 for SQL Server 2017

Cumulative Update 5 for SQL Server 2016 Service Pack 1

累積更新11 for SQL Server 2014 SP2

SQL Server 服務包資訊

此修正包含於以下 SQL Server 服務包中:

Service Pack 3 for SQL Server 2014

關於 SQL Server 建置

每個 SQL Server 2016 的新建置都包含了前一個建置中所有的熱修補與安全修補。 我們建議您安裝最新的 SQL Server 累積更新:

SQL Server 2017 最新累積更新

SQL Server 2016 最新版本

SQL Server 2014 最新累積更新

關於 SQL Server 服務包:

Service Pack 是累積性的。 每個新版 Service Pack 都包含前一版 Service Pack 中所有的修正程式,以及任何新增的修正程式。 我們的建議是套用該服務包的最新服務包及累積更新。 所以在安裝最新版的 Service Pack 之前,您不需要安裝前一版的 Service Pack。 請使用以下文章中的表1,查詢最新服務包及最新累積更新的更多資訊。

如何確定 SQL Server 及其元件的版本、版本與更新等級

狀態

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

參考資料

了解 Microsoft 用來說明軟體更新的術語