徵狀

如果使用 Microsoft SQL Server Service Broker 的應用程式設定為每個交談都有一條訊息的訊息模式,就會發現 tempdb 資料檔案的不預期增長。 這個模式類似于審計應用程式中通常使用的「火災與遺忘」模式。如果您在發生這個問題時,查詢 sys.dm_db_task_space_usage 動態管理檢視(DMV),您可能會看到「internal_objects_dealloc_page_count」值不會以 internal_objects_alloc_page_count 與執行內部 Service Broker 工作之會話 id 相同的速率增加。此外,即使關閉並清理所有擱置中的交談,也不會釋放 tempdb 空間。

原因

資料檔案的增長主要是由於對sys sysdesend 資料表進行常數插入和更新所造成。 在這種情況下,當您使用 Service Broker 時, tempdb 資料檔案會繼續增長。

解決方案

這個問題已于 MICROSOFT SQL Server 2016中修正。

累積更新資訊

Sql server 2012 Service Pack 3 (SP3)累積更新5(適用于 sql server 2014 SP1)累積更新3 for sql server 2014 SP2

每個新的 SQL Server 累計更新都包含所有的修正程式,以及前一個累積更新中所包含的所有安全性修正程式。 查看 SQL Server 的最新累加性更新: sql server2012 的最新累計更新SQL server 2014 SP1/SP2 的累積更新

其他相關資訊

若要從 tempdb回收您尚未發行空間,請重新開機 SQL Server 服務。若要避免此問題,請遵循下列 TechNet 主題中「效能與伸縮性技術」一節中的一般建議:

Service Broker:效能與伸縮性技術

狀態

Microsoft 確認這是目前的 Service Broker 設計中的已知問題。

Need more help?

Expand your skills
Explore Training
Get new features first
Join Microsoft Insiders

Was this information helpful?

How satisfied are you with the translation quality?
What affected your experience?

Thank you for your feedback!

×