【发布时间】:2019-01-07 17:28:01
【问题描述】:
我正在研究使用Query Notifications 作为一种轻量级的方法来识别表中的数据何时发生变化。我知道他们使用 Service Broker,并且(尽管我很难解释确切原因)他们看起来确实比 CDC 或 Triggers 之类的东西更可取。
通过向数据库提供查询来设置查询通知,该查询发送通知“...when the results of [the provided] query change”。
对我来说,这听起来就像他们在说你给它的任何查询,都会一遍又一遍地运行。我想我可能误解了 SQL 在该查询的幕后究竟做了什么来监控所说的变化,但我在网上找不到任何关于实际发生的事情。我希望它类似于解析查询并在查询中引用的任何对象上设置超级轻量级“触发器”,但由于我不知道,这让我不愿使用该功能。
是否有人对 Service Broker 和查询通知功能足够熟悉,可以解释数据库引擎如何监视提供的查询中的更改?
【问题讨论】:
-
这篇文章可能会有所帮助。 web.archive.org/web/20090426220055/http://rusanu.com/2006/06/17/… 虽然显示执行计划的图片太小而无法阅读,并且原始图像不再可用。但是您可以设置自己的测试
-
为什么不使用触发器,将数据更改存储到表格中并用 PHP 或其他语言打印出来?
-
@AlvaroParra 有很多原因,但无关紧要,因为这不是我在这里感兴趣的。
-
@MartinSmith 谢谢;现在阅读那篇文章。
标签: sql-server queue sql-server-2014 service-broker