对sql查询进行版本控制

我有一个服务器场,每个服务器定期对数据库进行相同的查询。 这些查询结果缓存在共享缓存中,可供所有服务器访问。 如何确保较旧的查询不会覆盖较新的查询? 有没有办法按时间以某种方式对查询进行版本控制,以便这样做 不会发生?如何处理并发查询? 谢谢! 编辑:db是SQL Server。 Query是一个select语句。而且,缓存机制非常简单:简单的写入,没有锁定。这是因为目前无法告知选择查询的顺序。     
已邀请:
一种方法是在数据库中有一个全局更新计数器,用于更新或读取(更新更有效,但也更难以正确)。 因此,在每次更新时,也会增加全局计数器。在每次读取时,读取全局计数器,并将数据与计数器值一起放入缓存中。仅在计数器值较大时才覆盖缓存内容。 由于数据库隔离,事务应该看起来好像是以串行方式发生的(假设您选择了SERIALIZABLE隔离级别)。反过来,这意味着严格更高的计数器数字与更新近的数据有关。     
缓存在哪里?它是一个磁盘文件吗?还是数据库中的表? 当你说一个较旧的查询可能会覆盖一个较新的查询时,这意味着什么?最近完成的查询(或者最近开始的)是最新的查询,这不是真的吗? 您应该在执行每个查询之前锁定缓存容器,无论是文件还是表。每个服务器只应执行查询才能获得锁定,否则应等待锁定的资源。这样缓存将只包含最新的结果。 这是否与你所要求的一致?     

要回复问题请先登录注册