我有许多状态完整的 Windows 服务,它们当前轮询数据库以查找特定Tables和/或Views中的新记录或更改记录。由于显而易见的原因,这限制了可伸缩性,并给我的 SQL Server 2008 数据库增加了不必要的负载。我想在数据库中实现类似于发布和订阅模式的东西;通过某种机制;发布消息以指示何时发生某些状态更改。
这让我想到了我的问题...... SQL Server 2008 中固有的机制是什么?如果有的话;哪个可以支持这种模式?
我对其他想法持开放态度,假设我可以摆脱盲目投票。作为额外的上下文,消息只需要携带基本信息来描述更改的性质和内容;按身份证;已经改变。
注意:我考虑过使用 SSIS 包和触发器,但认为不合适,尤其是在更改率较高的时候。
听起来您正在寻找查询通知。
正如您所描述的,此功能允许您订阅在查询结果更改时生成的通知。通常比重复轮询数据库的更改更有效。
在底层,通知依赖于用于维护索引视图的机制。因此,通知查询受到与应用于索引视图相同的限制。这是一组冗长的要求,您应该详细审查以确定它是否会使您的方案无法启动。