我有一个昂贵的操作来调用数据库,并填充一组对象以用于组合框。因为它可能需要大约2分钟,所以我在启动时将其缓存。
当用户需要使用这些组合框时,我需要确保它们具有当前数据。我怎么能这样做?
答案 0 :(得分:1)
我会经常猜测数据的变化。在这种情况下,我会在INSERT
,UPDATE
或DELETE
上创建一个触发器,用于计算存储在某个暂存器表中的校验和/ CRC。填充列表框时检索此值,然后与此值进行比较。这将是关于数据是否已经改变的一个很好的指标。
更简单的替代解决方案是仅存储上次更新的日期/时间而不是校验和。
在一个应用程序中,我们在表中添加了两列:IsActive和LastUpdate。使用IsActive代替完全删除记录。 LastUpdate是一个时间戳,指示每条记录的最后更新时间。 SELECT WHERE LastUpdate > '<your-previous-check>'
将为您提供仅需要应用的更改的列表。