【问题标题】:Detecting modified pages in SQL Server tables检测 SQL Server 表中的修改页面
【发布时间】:2014-10-02 12:11:25
【问题描述】:

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

有什么方法可以从 MS SQL Server 获得此功能? IE。如果我想在有时会更改的数据库表上缓存某些聚合值,我怎么知道何时使缓存无效?还是以编程方式实现它并在写入数据库时​​保留它的唯一方法?

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

【问题讨论】:

  • 您可能正在寻找SQL cache Invalidation

标签: sql sql-server caching sql-server-2008-r2 dirty-data


【解决方案1】:

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

请参阅http://www.codeproject.com/Articles/529016/NHibernate-Second-Level-Caching-Implementation 以获取将其与 NHibernate 一起使用的示例。

【讨论】:

    猜你喜欢
    • 2015-06-24
    • 1970-01-01
    • 2012-05-12
    • 2011-03-19
    • 1970-01-01
    • 1970-01-01
    • 2014-05-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多