Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 查询通知内部_Sql Server_Queue_Sql Server 2014_Service Broker - Fatal编程技术网

Sql server 查询通知内部

Sql server 查询通知内部,sql-server,queue,sql-server-2014,service-broker,Sql Server,Queue,Sql Server 2014,Service Broker,我正在研究使用一种轻量级的方法来识别表中的数据何时发生变化。我知道他们使用ServiceBroker,而且(尽管我很难解释确切的原因)他们看起来确实比CDC或触发器更好 通过向数据库提供查询来设置查询通知,该查询将发送通知“” 在我听来,他们好像在说,无论你提出什么问题,都会被一遍又一遍地重复。我想我可能误解了SQL在封面下通过查询来监视所说的更改所做的事情,但是我在网上找不到任何关于实际发生的事情。我希望它能解析查询并在查询中引用的任何对象上设置超级复制器轻量级“触发器”,但由于我不知道,这让

我正在研究使用一种轻量级的方法来识别表中的数据何时发生变化。我知道他们使用ServiceBroker,而且(尽管我很难解释确切的原因)他们看起来确实比CDC或触发器更好

通过向数据库提供查询来设置查询通知,该查询将发送通知“”

在我听来,他们好像在说,无论你提出什么问题,都会被一遍又一遍地重复。我想我可能误解了SQL在封面下通过查询来监视所说的更改所做的事情,但是我在网上找不到任何关于实际发生的事情。我希望它能解析查询并在查询中引用的任何对象上设置超级复制器轻量级“触发器”,但由于我不知道,这让我不愿使用该功能


是否有人足够熟悉Service Broker和查询通知功能,以解释数据库引擎如何监视所提供查询中的更改?

基于与物化(索引)视图相同的技术。当您为查询“Select…from…where”设置QN时,引擎将使用相同的查询设置假索引视图。无论何时运行任何DML,执行计划都必须维护“伪”索引视图数据,并相应地生成计划。当(如果)DML执行实际尝试更新假索引视图中的一行时,这表明原始查询可能已更改结果,并触发通知。然后删除“假”索引视图。比如说,“伪”索引视图从未具体化(不存在实际行)

这就是为什么查询可以订阅QN的限制与索引视图限制几乎相同


Martin链接的文章对此进行了解释,但将此作为未来参考的答案。

基于与物化(索引)视图相同的技术。当您为查询“Select…from…where”设置QN时,引擎将使用相同的查询设置假索引视图。无论何时运行任何DML,执行计划都必须维护“伪”索引视图数据,并相应地生成计划。当(如果)DML执行实际尝试更新假索引视图中的一行时,这表明原始查询可能已更改结果,并触发通知。然后删除“假”索引视图。比如说,“伪”索引视图从未具体化(不存在实际行)

这就是为什么查询可以订阅QN的限制与索引视图限制几乎相同


Martin链接的文章对此进行了解释,但将此作为答案留作将来参考。

本文可能会有所帮助。尽管显示执行计划的图片太小,无法读取,并且原始图像不再可用。但是你可以设置自己的测试为什么不使用触发器,将数据更改存储到表中,然后用PHP或其他语言打印出来?@AlvaroParra有很多原因,但并不重要,因为这不是我感兴趣的地方。@MartinSmith谢谢;现在读那篇文章。这篇文章可能会有所帮助。尽管显示执行计划的图片太小,无法读取,并且原始图像不再可用。但是你可以设置自己的测试为什么不使用触发器,将数据更改存储到表中,然后用PHP或其他语言打印出来?@AlvaroParra有很多原因,但并不重要,因为这不是我感兴趣的地方。@MartinSmith谢谢;现在读那篇文章。