admin 管理员组文章数量: 1184232
如果你的数据库启用了Service Broker后发现TempDB的size一直在增加,此时可以考虑是否在call service的时候没有结束conversation。
具体怎么结束conversation可以参考另一篇。SQL Server Service Broker启用详解以及常见问题
此文章主要用于清理遗留的conversation去释放TempDB的空间。
脚本如下:
'AuditTrailService'--改成你自己的service名称(可以在你的DB -> Service Broker -> Services )
--End conversation for AuditTrailSyncQueue
declare @ServiceBroker_ServiceName nvarchar(255)='AuditTrailService'--改成你自己的service名称(可以在你的DB -> Service Broker -> Services )
DECLARE @conversationHandle UNIQUEIDENTIFIER;
WHILE (1 = 1)
BEGIN
select TOP 1 @conversationHandle= ce.conversation_handle
from
sys.conversation_endpoints ce
left join sys.services ss on ce.service_id=ss.service_id
where state_desc='CONVERSING' and ce.far_service=@ServiceBroker_ServiceName
IF (@@ROWCOUNT = 0)
BREAK;
END CONVERSATION @conversationHandle WITH CLEANUP;
END;
本文标签: 清空 空间 Service SQL Server
版权声明:本文标题:SQL Server Service Broker清空conversation释放TempDB空间 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1765774035a3413465.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论