相关疑难解决方法(0)

使用SQLDependency与定期轮询表(性能影响)

在我们的应用程序开发之初,我们非常重视SQLDependency来缓存数据库结果,直到通知告诉我们的应用程序获取新副本.

在测试期间,我们注意到sql db的性能受到sqldependency通知服务的影响.我们缩减了使用sqldependency的表的数量,并注意到性能的大幅提升.所以,我们认为我们刚刚过度使用它,我们继续前进.我们现在只有几张桌子.

后来我们发现我们无法缩减将建立依赖关系的用户名的安全访问级别.我们可以为每个db创建多个连接字符串(一个用于依赖,一个用于应用程序的其余部分)但是有多个db和db镜像,这很痛苦(从sql db管理角度和应用程序开发)

在这一点上,我们只是考虑基于以下逻辑完全脱离SQLDependency:

  1. 我们不需要数据发生变化的"即时"通知.如果我们在1秒钟内知道,那就足够快了.
  2. 通过一些轻微的重新分解,我们可以将其降低到只有1个表并每秒轮询该表一次.

有没有人看到这个逻辑的缺陷?

每秒轮询一个表会导致数据库上的负载比SQLDependency更多或更少吗?

是否有人与SQLDependency有类似的性能问题?

c# sql-server sqldependency

20
推荐指数
1
解决办法
7089
查看次数

.NET SqlDependency有很多通知与高速率轮询?


我有一张小桌子(大约200行),它一直在变化(每秒几次).
我一直在寻找一种解决方案,我可以在每次更改时接收来自数据库的通知,而不是轮询它(假设每秒5-10次).

此外,我想每次只接收更改的行而不是获取整个表 - 我发现使用SqlDependency类实现这一点相当困难.

要考虑的事情:

  1. 我无法控制表中的更改,也无法接收除使用数据库之外的数据.
  2. 我打算构建一个服务,将更改广播到我的前端服务器

有没有办法使用SqlDependency做到这一点?

这种情况下最佳做法是什么?

顺便说一句:我正在使用SQL Server 2012

提前致谢

.net c# sql-server sqldependency sql-server-2012

3
推荐指数
1
解决办法
6053
查看次数

标签 统计

c# ×2

sql-server ×2

sqldependency ×2

.net ×1

sql-server-2012 ×1