我目前正在使用Microsoft SQL Server 2008。
我的生产服务器负载很重。
我的C#应用程序使用'SqlDependency'类来监视某些表更改。
在开发环境中 - 应用程序正常运行,并且SQL服务器的更改事件被正确触发。
在生产环境中 - 即使没有任何更改,应用程序也会获得更改事件。我已经读过“SqlDependency”在重负载下表现不佳。
我正在寻找其他解决方案,有什么建议吗?
答案 0 :(得分:2)
如果在没有变化时收到通知,则表示其他内容触发了通知。您必须始终检查OnChange
处理程序上收到的SqlNotificationEventArgs
参数,并根据Info
,Source
和Type
做出适当反应。在生产中,您很可能会收到类似Info.Options
的通知,表示不正确的SET选项(即特定于环境的问题)。
关于加载时SqlDependency
的评论,您必须链接来源。但是整体查询通知是针对更改很少的数据的缓存失效而设计的。