在我们的应用程序开发之初,我们非常重视SQLDependency来缓存数据库结果,直到通知告诉我们的应用程序获取新副本.
在测试期间,我们注意到sql db的性能受到sqldependency通知服务的影响.我们缩减了使用sqldependency的表的数量,并注意到性能的大幅提升.所以,我们认为我们刚刚过度使用它,我们继续前进.我们现在只有几张桌子.
后来我们发现我们无法缩减将建立依赖关系的用户名的安全访问级别.我们可以为每个db创建多个连接字符串(一个用于依赖,一个用于应用程序的其余部分)但是有多个db和db镜像,这很痛苦(从sql db管理角度和应用程序开发)
在这一点上,我们只是考虑基于以下逻辑完全脱离SQLDependency:
有没有人看到这个逻辑的缺陷?
每秒轮询一个表会导致数据库上的负载比SQLDependency更多或更少吗?
是否有人与SQLDependency有类似的性能问题?
我有一张小桌子(大约200行),它一直在变化(每秒几次).
我一直在寻找一种解决方案,我可以在每次更改时接收来自数据库的通知,而不是轮询它(假设每秒5-10次).
此外,我想每次只接收更改的行而不是获取整个表 - 我发现使用SqlDependency类实现这一点相当困难.
要考虑的事情:
有没有办法使用SqlDependency做到这一点?
这种情况下最佳做法是什么?
顺便说一句:我正在使用SQL Server 2012
提前致谢