如何使用SQL查询或表更改有效地触发系统命令?

时间:2015-05-19 09:17:30

标签: sql sql-server windows-server

我将数据转换和缓存服务作为自托管WCF服务运行。 现在它以恒定的短间隔使用数据库轮询来更新其数据。

我认为这是不必要的。只有在更改其中一个表时,才能更改数据,并且在更改数据时,这取决于系统用户的操作。

为特定表设置触发器没有问题,但是我需要在SQL-Server外部执行操作来更新我的缓存。我的WCF服务可以在通过HTTP接收特定URI时执行更新。所以我需要的是一个表触发器中的命令,它将发送一个请求。它甚至可能吗?

我想到了我在HTTP请求时使用的黑客攻击。我在服务器上暂停了HTTP请求响应,直到来自其他地方的数据包到达。轮询请求之间没有延迟。我实现了完全异步的“实时”更新。

也许这种方法可以应用于SQL?我想一个阻止终止直到收到信号的查询。好吧,它最终会超时,但它足以尝试。然后 - 如何在SQL中发出信号并等待?通过锁定和解锁共享资源,如光标或虚拟表?

还有其他选择吗?

我需要以尽可能低的频率完成缓存更新(因为它非常昂贵,所以每分钟一次很棒),但我需要在数据更改时立即更新。

1 个答案:

答案 0 :(得分:1)

要回答你的问题,你看过xp_cmdshell吗?

https://msdn.microsoft.com/en-us/library/ms175046.aspx

但是,根据您的使用情况,此类决定的安全/性能影响可能非常重要。