我有一个包含大约500条记录,每条记录有7列的数据集。我想使用objectdatasource和缓存。我确定数据不会改变。但会有很多用户访问数据。我的问题是,缓存具有500个记录的数据是否是一个好主意。是否最优?我认为objectdatasource针对每个用户缓存数据。因此,我在想如果我缓存数据并使用这个大小的数据集,是否会出现性能问题。
Thanks, sridhar.
我有一个包含大约500条记录,每条记录有7列的数据集。我想使用objectdatasource和缓存。我确定数据不会改变。但会有很多用户访问数据。我的问题是,缓存具有500个记录的数据是否是一个好主意。是否最优?我认为objectdatasource针对每个用户缓存数据。因此,我在想如果我缓存数据并使用这个大小的数据集,是否会出现性能问题。
Thanks, sridhar.
答案真正取决于记录的大小,而不仅仅是数量。在任何情况下,ASP.NET 的缓存算法使用最近最少使用(LRU)算法来驱逐最近没有使用的项目,以为其他项目腾出空间。因此,除非您的站点非常繁忙或您的结果集非常大,否则您应该可以缓存结果集,并让ASP.NET的缓存处理保持最常用数据的细节并使最不常用数据过期。
如果页面上没有其他与用户相关的内容,您还可以考虑使用页面级输出缓存,因为这可能会为您带来稍微更好的性能,而仅需最小的额外内存使用。其他要调查的领域包括控件、SqlDependencies,当然,如果数据是只读的,请确保您正在禁用ViewState,无论您要使用哪个控件来显示数据。