大家好
监视数据库上的指定表,我每隔几毫秒(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/