SQL Broker:异步过程执行

时间:2014-10-17 08:37:03

标签: sql-server asynchronous service-broker

我读过这篇伟大的Remus Rusanu的文章 http://rusanu.com/2009/08/05/asynchronous-procedure-execution/

如何实现这个想法:

我有一个很大的主表,用户可以在那里标记'as delete'记录(将字段设置为1) 我无法使用SQL Jobs,因为客户可以使用SQLExpress。

这个想法是:当大表中的用户'删除'或'取消删除'记录需要向队列发送消息时。 激活proc'fire and forget'proc以对主表中的标记记录执行真正的Delete语句 - 全部或部分,取决于它。

但最大限度地避免阻塞....这就是为什么问题:

如果SQL Server的加载率最低,如何执行实际删除?或者当数据库的活动最低时? 如何在异步proc中检测这些“低数据库加载”时刻?

1 个答案:

答案 0 :(得分:1)

无法将Service Broker直接激活到工作负载,只能在“低活动”期间激活。

  

我无法使用SQL Jobs,因为客户可以使用SQLExpress

虽然SQL Server Express Edition缺少SQL代理调度,但使用Service Broker conversation timers仍有解决方法。请参阅Scheduling Jobs in SQL Server Express(和part 2)。