0

有没有办法检查 SQL Server 表(或者更好的是,该表中的页面)是否在某个时刻被修改?例如,SQL 差异备份使用脏标志来了解自上次备份以来数据的哪些部分发生了更改,并在成功备份后重置这些标志。

有没有办法从 MS SQL Server 获得这个功能?即,如果我想在有时会更改的数据库表上缓存某些聚合值,我怎么知道何时使缓存无效?或者是以编程方式实现它并在写入数据库时​​保持这一点的唯一方法?

我正在使用 C# .NET 4.5 通过 NHibernate 访问 SQL Server 2008 R2。

4

1 回答 1

0

我建议您从应用层数据缓存而不是 SQL Server 低级数据页的角度考虑您的问题。您可以在 C# 代码中使用 SqlDependency 或 QueryNotification 来获取基础数据更改的通知。请注意,这需要在 SQL Server 数据库中启用 ServericeBroker,并且对有资格获得通知的查询有一些限制。

有关将其与 NHibernate 一起使用的示例, 请参见http://www.codeproject.com/Articles/529016/NHibernate-Second-Level-Caching-Implementation 。

于 2014-10-02T12:47:44.130 回答