KB3024815 - 大型查詢編譯在 SQL Server 2014 的 RESOURCE_SEMAPHORE_QUERY_COMPILE 上等候

Applies To
SQL Server 2014 Business Intelligence - 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 2014 Express - duplicate (do not use) SQL Server 2014 Web - duplicate (do not use)

症狀

當您嘗試在 Microsoft SQL Server 2014 中同時執行多個大型查詢時,某些查詢可能會等待RESOURCE_SEMAPHORE_QUERY_COMPILE。 即使伺服器有足夠的可用記憶體,也只能繼續進行一個需要比 DBCC MEMORYSTATUS 命令輸出所提供的大型閘道閾值 () 的查詢。

注意這是預期會發生的行為。 不過,在資料倉儲等大型批次系統中,這可能會降低同時執行許多查詢的效能。

解決方式

累積更新資訊

此問題已先在下列 SQL Server 累積更新中修正。

建議:安裝最新的 SQL Server 累積更新

SQL Server 的每個新累積更新都包含所有 Hotfix 和先前累積更新的所有安全性修正程式。 我們建議您下載並安裝 SQL Server 的最新累積更新:

此 Hotfix 會引進新的追蹤旗標 -T 6498。 當有足夠的記憶體可用時,此追蹤旗標可讓多個大型查詢編譯取得大型閘道的存取權。 它是以 80% 的目標記憶體為基礎SQL Server允許每 25 GB (GB) 記憶體進行一次大型查詢編譯。 例如,這允許在 64 GB 的目標記憶體電腦上進行兩個大型查詢編譯。

套用此 Hotfix 之後,您必須啟用追蹤旗標 -T 6498 才能啟用新行為。

注意:如果您使用 DBCC TRACEON 命令啟用追蹤旗標,則不需要重新啟動伺服器,追蹤旗標就會生效。 但可能需要 10 秒才能套用新的大型閘道設定。

 Microsoft 提供支援的 Hotfix。 不過,此 Hotfix 僅用來修正本文所述的問題。 僅將此 Hotfix 套用至發生此特定問題的系統。

如果 Hotfix 可供下載,本知識庫文章頂端有「Hotfix 可供下載」一節。 如果未顯示此區段,請提交要求給 Microsoft 客戶服務與支援以取得 Hotfix。

注意: 如果發生其他問題或需要進行任何疑難排解,您可能需要建立另外一個服務要求。 一般的支援費用將適用於不符合此特定 Hotfix 資格的其他支援問題和問題。 如需 Microsoft 客戶服務及支援服務的完整電話號碼清單,或建立個別的服務要求,請造訪下列 Microsoft 網站:

/contactus/?ws=support 注意:「Hotfix 下載可用」表單顯示 Hotfix 可用的語言。 如果您找不到您的語言,是因為該語言沒有 Hotfix。

更多資訊

原因:SQL Server 使用編譯閘道來節流編譯。 閘道架構是一種讓 SQL Server 控制內送查詢編譯記憶體使用量的方法。 有三種閘道:小型、中型和大型。

如需如何使用 DBCC MEMORYSTATUS 命令監視記憶體使用量的詳細資訊,請參閱 KB 907877:如何使用 DBCC MEMORYSTATUS 命令監視 SQL Server 2005 上的記憶體使用量。

狀態

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