如何避免ASP.NET中的快速页面刷新?

如何避免ASP.NET中的快速页面刷新?,asp.net,sql,Asp.net,Sql,我有一个显示用户统计信息的页面,不能缓存,因为每个用户都有不同的统计信息,而且有很多,因此必须进行实时查询 当用户单击F5刷新或在短时间间隔内询问不同的查询时,如何避免数据库服务器过载?您可以将生成的统计信息存储在数据库中一段时间,如果再次请求统计数据,只需显示旧值。我认为@Jens A.已经完成了一半-这是缓存的完美案例,计算统计数据,将它们以固定的过期时间粘贴到缓存中,然后仅当它们不在缓存中时才计算它们。通过将到期时间设置为适当的值(5分钟或更短?),统计数据仍将合理地更新,并将以合理的速度

我有一个显示用户统计信息的页面,不能缓存,因为每个用户都有不同的统计信息,而且有很多,因此必须进行实时查询


当用户单击F5刷新或在短时间间隔内询问不同的查询时,如何避免数据库服务器过载?

您可以将生成的统计信息存储在数据库中一段时间,如果再次请求统计数据,只需显示旧值。

我认为@Jens A.已经完成了一半-这是缓存的完美案例,计算统计数据,将它们以固定的过期时间粘贴到缓存中,然后仅当它们不在缓存中时才计算它们。通过将到期时间设置为适当的值(5分钟或更短?),统计数据仍将合理地更新,并将以合理的速度更改(更新),而无需在每次页面持续刷新时进行计算

你这是什么意思?统计数据以呈现给用户的方式存储。我需要一种方法,以避免用户从ie。过滤一些字在短时间内。如果我将每个结果集保存在数据库中,这个表将成为瓶颈。好的,当我进行查询时,我会从会话中传递一些参数和一些控件,如日期和名称。我将创建4个参数的缓存结果集,如userID、date1、date2和name。。。imho不可能。不,您缓存的值只有
UserID
作为唯一参数;这样,如果任何用户在5分钟内刷新,他将获得缓存的统计信息,并且每个用户只能在密钥过期后强制重新计算。您的缓存基本上充当用户请求的速率限制器。