2017-02-12 82 views
2

我要监视两个表的变化(大型数据库)我有两个选择服务经纪人与正常监控性能

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

从我的角度来看,第二选择是不合理和头痛的,我对定时器有不好的经验

任何关于最佳实践的建议e为此

+0

如果这些表的所有更改都由您自己的应用程序完成 - 您可以从应用程序本身通知这些更改。 – Evk

+0

@Evk没有不是由我的应用程序我只是听取使用Windows服务的变化进行更改 – AMH

回答

0

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

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

定时器在任何情况下都不是一个选项。他们无法检测到更改,他们只能再次运行相同的查询。

+0

可以解释更多的缓存失效,我有很多应用程序插入两个表我有Windows服务采取行动取决于任何新的插入SqlDependency将有助于这个权利? – AMH

+0

[Cache Invalidation](https://en.wikipedia.org/wiki/Cache_invalidation) –

+0

SqlDependency帮助的场景是,比方说,您有一个在网格上显示数据的应用程序。数据是通过查询从数据库中获取的。只要其他用户修改了DB中的记录,网格就会刷新以显示新的修改过的数据。 –