大家好

监视数据库上的指定表,我每隔几毫秒(10-20毫秒)轮询一次该表。

是否有可能有一个通知(而不是SqlDependency,在我的场景中太慢)而不是轮询?

你有什么主意吗?

我的场景是.net + Sql Server 2008

谢谢!

最佳答案

可以使用CLR存储过程(将调用WCF /或Web服务)来完成此操作。这并不是一件很难的事情。

这实际上需要2个步骤。


数据修改。
修改数据后,必须将数据发送到clr存储过程。最简单的方法是将其写入一个或多个临时表中。
clr存储过程。
clr存储过程将使用以下命令连接到数据库

“上下文连接= true”


这样您就可以访问所需的存储过程。加载数据后,将其发送到服务器(WCF / webservice)。在CLR中,您只需要添加所需的服务引用。同样在服务器上,您将必须注册一些dll以便服务器使用:

system.web
smdiagnostics
system.runtime.serialization
system.identitymodel
system.identitymodel.selectors
system.messagng
system.transactions.bridge
system.servicemodel


其他所有内容都是调用WCF / Web服务的普通.NET代码。
这种方法非常快速且非常可靠。

关于c# - 来自数据库的通知,而不是轮询。可能吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12531262/

10-11 01:38
查看更多