HttpContext.Current.Cache VS. SQL表性能

时间:2013-07-20 11:36:31

标签: sql-server performance caching asp.net-mvc-4 dapper

我们的购物车数据库设计不佳。将用于前端站点的所有已处理对象都存储在Application_Start上的HttpContext.Current.Cache中。处理对象我的意思是来自sql脚本的结果,它有许多连接和条件。

寻找删除缓存或改进当前缓存过程的最佳解决方案。我正在考虑将处理过的对象存储到SQL Server表中,该表将在每个午夜重新填充。并使用Dapper ORM从此SQL Server表中检索数据并实现输出缓存。

希望有人能为这个问题分享一个高速且可维护的解决方案。 :)

谢谢!

1 个答案:

答案 0 :(得分:2)

您所描述的内容实际上是:将数据复制到第二个(技术上冗余的)模型中,更适合查询。如果是这样的话,那么肯定:玩得开心 - 这并不是很少见。但是,在完成所有这些操作之前,您可能需要尝试indexed views - 这可能会解决大部分问题,而无需编写所有维护代码。

但是,我建议不要“删除缓存” - 而只是“让缓存在某个时刻到期”;有一个重要的区别。在每个请求中访问数据库以获取相同的数据并不是一个好主意。