使用 Microsoft 登录
登录或创建帐户。
你好,
使用其他帐户。
你有多个帐户
选择要登录的帐户。

症状

如果将使用 Microsoft SQL Server Service Broker 的应用程序配置为对每个对话中的一条消息使用消息模式,则会发现 tempdb 数据文件出现意外增长。 此模式类似于审核应用程序中通常使用的 "火灾和忘掉" 模式。如果在出现此问题时查询 sys.dm_db_task_space_usage 动态管理视图(DMV),则你可能会看到 "internal_objects_dealloc_page_count" 值不会以与运行内部 Service Broker 任务的会话 id 的 "internal_objects_alloc_page_count" 相同的速率增加。此外,即使关闭并清理了所有挂起的对话,也不会释放 tempdb 空间。

原因

数据文件的增长主要由sysdesend 表的常量插入和更新引起。 在这种情况下,当你使用 Service Broker 时, tempdb 数据文件将继续增长。

解决方案

此问题已在 MICROSOFT SQL Server 2016中修复。

累积更新信息

Sql server 2012 的累积更新 5 Service Pack 3 (SP3) 累积更新10(适用于 sql server 2014 SP1)累积更新 3 sql server 2014 SP2

SQL Server 的每个新的累积更新均包含以前的累积更新中包含的所有修补程序和所有安全修补程序。 查看 SQL server 的最新累积更新: sql server2012 SP3 的最新累积更新SQL server 2014 SP1/SP2 的累积更新

更多信息

若要从 tempdb回收 unreleased 空间,请重新启动 SQL Server 服务。若要避免此问题,请按照以下 TechNet 主题的 "性能和可伸缩性技术" 部分中的常规建议进行操作:

Service Broker:性能和可伸缩性技术

状态

Microsoft 确认这是当前的 Service Broker 设计中的已知问题。

需要更多帮助?

需要更多选项?

了解订阅权益、浏览培训课程、了解如何保护设备等。

社区可帮助你提出和回答问题、提供反馈,并听取经验丰富专家的意见。

此信息是否有帮助?

你对语言质量的满意程度如何?
哪些因素影响了你的体验?
按“提交”即表示你的反馈将用于改进 Microsoft 产品和服务。 你的 IT 管理员将能够收集此数据。 隐私声明。

谢谢您的反馈!

×