我有一个sql查询(存储过程),需要大约8-10秒才能返回结果显示在webgrid中。在asp.net-mvc3中进行缓存的性能的最佳实践是什么,因此用户不必每次都需要8-10秒来加载数据(较少优化查询)?MVC3数据缓存技术
回答
您可以使用MemoryCache类在某个键下存储此查询的结果。关键可能是查询标准的哈希(如果有的话)。这里是关于如何使用它的MSDN上的some guides。
实施缓存时请记住默认情况下此缓存存储在内存中。这意味着如果您在Web场中运行此应用程序,则使用分布式缓存可能会更有趣,以便场中的所有节点共享相同的缓存数据。这可以通过用一些分布式缓存解决方案扩展ObjectCache类来完成。例如memcached是一个受欢迎的,它有.NET provider。另一个分布式缓存解决方案是AppFabric。
它正在缓存此操作。
[OutputCache(Duration = 300)]
public ActionResult Action(){
//some operation
return View()
}
这会缓存整个操作(例如操作不会被执行),所以即使数据改变了,它也不会在接下来的5分钟内执行。当访问数据时我不喜欢使用它 – BigMike
此存储过程后面的底层数据更改的频率如何?如果相对很少,您可以用非常好的功能 - 的SqlCacheDependency
http://msdn.microsoft.com/en-us/library/ms178604.aspx
这样只在需要时你沉重的SP将被调用,结果将尽可能长时间地缓存。
Thx用于答复这可能需要每3-4小时更新一次然而,我确实得到了SqlCachDep致力于工作,所以谢谢,但我可能需要更频繁地更新它。 – JaJ
- 1. 数据缓存技术/提示/ AppFabric
- 2. 需要数据缓存技术帮助
- 3. Hadoop - 数据块缓存技术
- 4. php缓存技术
- 5. 分布式缓存技术
- 6. Hibernate的缓存技术
- 7. 如何使用缓存技术解决复杂的sql数据
- 8. 从MySQL DB缓存数据 - 技术和适当的STL容器?
- 9. apache php使用哪种缓存技术
- 10. Javascript缓慢加载技术
- 11. 数据库继承技术?
- 12. 数据绑定技术
- 13. 技术选择,数据库
- 14. 选择数据库技术
- 15. MVC3 Ajax.ActionLink缓存
- 16. ASP.NET内存管理技术
- 17. 图像存储技术
- 18. Azure存储底层技术
- 19. 用于设置音频文件缓存的最佳技术
- 20. 用于禁用密码缓存的跨浏览器技术
- 21. 缓存相关的性能优化技术?
- 22. Php针对中小型网站的简单缓存技术
- 23. 聚合物CLI构建|缓存清除技术
- 24. 二进制数据的群集技术
- 25. 技术对同一数据集
- 26. 永不丢失数据技术
- 27. sqlite数据库的优化技术
- 28. SQL Server数据优化技术
- 29. 分组技术SUM数据库
- 30. 最好的数据库/分类技术
MemoryCache可能是正确的解决方案,但我有一些场景中的对象会自动从缓存中清除(使用MVC 3)。你对此有何建议?是否有任何特定的配置需要使它与MVC一起工作?哦,如果你想给它一个镜头,你可以阅读http://stackoverflow.com/questions/7849000/memorycache-empty-just-after-adding-an-object?我仍然在与这个问题斗争,并不明白我失败的地方。 :(谢谢。 – BigMike
@BigMike,你可以在存储对象到缓存时指定一个过期策略,你可以定义绝对过期,滑动过期,更改监视器,......这是非常灵活的 –
是的我可以,我已经尝试过在有些情况下,我已经把所有东西都驱逐出去,显然没有理由。有趣的是,在我的删除回调中,我得到了一个CacheSpecificEviction的原因,但是找不到谁实际上是驱逐出来的 – BigMike