【问题标题】:Monitoring /Watching database (activity) programmatically以编程方式监视/监视数据库(活动)
【发布时间】:2009-12-14 06:33:54
【问题描述】:

我想知道如何以编程方式监控数据库的更改。 假设我想要一个 .net 应用程序,该应用程序将在每 100 个或(第 n 个)行插入或行删除或更新之后运行。如何实现?
我对触发器知之甚少。它们可用于触发可执行文件。
但我听说这不是一个好习惯。 还有其他方法吗?
2]数据库是否在表更新时触发事件?他们会被程序捕获吗?
3]这里可以使用SQL报表服务吗?

(还假设此应用程序独立于执行此操作的实际程序 数据库操作。)

【问题讨论】:

    标签: c# database monitoring


    【解决方案1】:

    SQL Server 2005 引入查询 通知,新功能 允许应用程序请求 来自 SQL Server 的通知,当 查询更改的结果。询问 通知允许程序员 设计查询的应用程序 仅在发生更改时使用数据库 信息,应用程序 以前检索过。

    查看MSDN link 以获得更清晰的信息 和sample immplementation

    【讨论】:

    【解决方案2】:

    除非您不关心“100th”或“nth”的准确性,否则触发器确实是您唯一的方法。

    2 和 3 的答案是否定的。

    您可以编写托管存储过程 (MSDN example),但这并不能真正帮助您。一般来说,触发器可能是不好的做法,因为它们可以阻止初始调用者,但有时它们是唯一的解决方案。

    【讨论】:

      【解决方案3】:

      我认为您需要质疑将这种低级数据监控放在单独的应用程序中的要求。想想您的数据更改可能源自何处 -

      你对每一个都有充分的了解吗:

      • 存储在您的数据库中的 proc(现在和将来)以及哪些更新此表?
      • 可能会影响您的数据库的应用程序(现在和将来)

      如果没有,那么直接在数据级别(即在数据库中)观察变化可能是最好的选择,这可能意味着触发器......

      【讨论】:

        【解决方案4】:

        http://msdn.microsoft.com/en-us/library/ms166104(v=SQL.90).aspx阅读有关“服务代理”的信息

        【讨论】:

          猜你喜欢
          • 2014-07-09
          • 2011-02-07
          • 2015-04-17
          • 2013-03-09
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-05-24
          • 2011-04-24
          相关资源
          最近更新 更多