2

我有一个 DAL,用于将大量时间序列测量值保存到 RDBMS 数据库(MS SQL Server)中。还有一个网络应用程序连接到该数据库并在线显示趋势(通常绘制几个月的数据图表,例如,各种数量和物联网设备的 5 分钟最小/最大/平均聚合)。

由于数据量大,我想将聚合结果缓存到一个单独的表中,如果我可以有一个额外的内存缓存层,那也很酷。但是,设备经常发送带有较旧时间戳的历史数据,这意味着缓存通常需要失效,并且有两个应用程序访问这些数据(插入/更新并偶尔读取数据的服务,以及读取数据的 Web 应用程序)数据)。

我已经研究了几个选项,例如 SQL 触发器,或者只是手动使表无效,但我不确定如何将缓存失效正确地传播到 Web 应用程序。

有没有办法以某种方式检测我的网络应用程序中的 SQL 事件并使缓存无效?或者有一个单独的内存缓存进程,也可以失效?或者我是否应该创建我自己的第三个服务,它将作为所有数据库操作的代理,提供数据的内存缓存(这肯定看起来有点矫枉过正)?

4

1 回答 1

0

我不相信 Web 应用程序可以直接检测 sql server 事件。

于 2016-10-17T11:25:36.577 回答