如何确保我的数据库缓存是最新的?

时间:2009-09-21 20:54:53

标签: c# .net sql-server

我有一个昂贵的操作来调用数据库,并填充一组对象以用于组合框。因为它可能需要大约2分钟,所以我在启动时将其缓存。

当用户需要使用这些组合框时,我需要确保它们具有当前数据。我怎么能这样做?

1 个答案:

答案 0 :(得分:1)

我会经常猜测数据的变化。在这种情况下,我会在INSERTUPDATEDELETE上创建一个触发器,用于计算存储在某个暂存器表中的校验和/ CRC。填充列表框时检索此值,然后与此值进行比较。这将是关于数据是否已经改变的一个很好的指标。

更简单的替代解决方案是仅存储上次更新的日期/时间而不是校验和。

在一个应用程序中,我们在表中添加了两列:IsActive和LastUpdate。使用IsActive代替完全删除记录。 LastUpdate是一个时间戳,指示每条记录的最后更新时间。 SELECT WHERE LastUpdate > '<your-previous-check>'将为您提供仅需要应用的更改的列表。