服务接受SQL查询并在后台运行

问题描述 投票:-1回答:1

是否有接受大量SQL查询的服务并在后台运行退役和日志记录?

我有多个客户端直接针对SQL Server数据库运行大量查询,但因为它们只是插入,将查询发布到某些服务会更有效率,这些服务可以在事务中脱机运行,从而使客户端不必等待查询完成并减少与数据库的连接。

因为应用程序不需要结果,所以我想“发送并忘记”知道它们最终会完成的SQL语句,即使它们需要因超时或网络问题而重试。

这样的服务存在吗?

sql sql-server
1个回答
4
投票

这样的服务存在吗?

没有这样的服务开箱即用。正如Gordon Linhoff建议的那样,您可以将批次发送到Servcie Broker队列中,或者将它们插入到常规表中,然后运行后台进程。

对于Service Broker,设置,编程和故障排除有点棘手,但是当消息出现在队列中时,您会获得Internal Activation来触发您编写的存储过程。

使用常规表,您只需编写一个在循环中运行的SQL代理作业(或类似作业),在目标表中查找新行,运行它找到的批处理,并将批处理删除(或标记)为完成。您没有获得Service Broker Activation提供的低延迟和自动横向扩展,但实现起来要简单得多。