在不使用“SqlDependency”类的情况下监视数据库更改

时间:2013-06-25 09:42:58

标签: c# sql sql-server-2008

我目前正在使用Microsoft SQL Server 2008。

我的生产服务器负载很重。

我的C#应用​​程序使用'SqlDependency'类来监视某些表更改。

在开发环境中 - 应用程序正常运行,并且SQL服务器的更改事件被正确触发。

在生产环境中 - 即使没有任何更改,应用程序也会获得更改事件。我已经读过“SqlDependency”在重负载下表现不佳。

我正在寻找其他解决方案,有什么建议吗?

1 个答案:

答案 0 :(得分:2)

如果在没有变化时收到通知,则表示其他内容触发了通知。您必须始终检查OnChange处理程序上收到的SqlNotificationEventArgs参数,并根据InfoSourceType做出适当反应。在生产中,您很可能会收到类似Info.Options的通知,表示不正确的SET选项(即特定于环境的问题)。

关于加载时SqlDependency的评论,您必须链接来源。但是整体查询通知是针对更改很少的数据的缓存失效而设计的。