【问题标题】:Service broker vs normal monitor performance服务代理与正常监视器性能
【发布时间】:2017-02-12 16:20:37
【问题描述】:

我想监控两个表的变化(在大型数据库中)我有两个选择

  • SqlDependency 和服务器代理
  • 普通计时器每秒观看一次

从我的角度来看,第二个选择不合理且令人头疼,我对计时器的体验很糟糕

关于最佳实践的任何建议

【问题讨论】:

  • 如果对这些表的所有更改都是由您自己的应用程序进行的 - 您可以从应用程序本身通知这些更改。
  • @Evk 不是我的应用程序,我只是使用 Windows 服务监听更改以进行更改

标签: c# sql-server performance timer service-broker


【解决方案1】:

Query Notifications(又名 SqlDependency)允许您检测更改会修改您已经运行的查询。它们仅用于缓存失效。

要跟踪表中发生的更改,即使您的客户端处于离线状态,您也需要考虑Change TrackingChange Data Capture

在任何情况下都不能选择计时器。它们无法检测到更改,只能再次运行相同的查询。

【讨论】:

  • 你能解释一下缓存失效吗,我有很多应用程序插入到两个表中
  • SqlDependency 提供帮助的场景是,例如,您有一个在网格上显示数据的应用程序。数据是通过查询从数据库中获取的。一旦另一个用户修改了数据库中的记录,网格就会刷新以显示新的、已修改的数据。
  • 如果您想要一个需要在应用程序将数据插入/修改数据到表中时立即处理某些内容的服务,那么这不是 SqlDependency 方案。 Use a queue instead.
  • 抱歉,我希望我的 Windows 服务在更改完成后得到注意
猜你喜欢
  • 2010-09-07
  • 1970-01-01
  • 1970-01-01
  • 2011-05-02
  • 1970-01-01
  • 2018-09-08
  • 1970-01-01
  • 1970-01-01
  • 2013-03-22
相关资源
最近更新 更多