我希望找到缓存DB查找表的最佳方法,该表由大约75个表组成。
我想缓存这些表数据以便在我的应用程序中使用它们,所以每次我需要时都不会打开与数据库的连接。
这是我正在做的事情:
MyApplicationCache
的每个查找表的静态属性。HttpRuntime.Cache["PropertyName"]
HttpRuntime.Cache["PropertyName"] != null
到目前为止一切都很好,但最近我遇到了性能问题,我无法解决。如果我想从DB更新缓存对象(付款人),我这样做:
MyApplicationCache.Payer = null;
这会设置HttpRuntime.Cache["Payer"] = null
,所以如果我再次请求它,则会从数据库重新加载它。
list<payer> payerList = MyApplicationCache.Payer;
现在,性能问题引发了:
PayerList
约为1700条记录。List
的{{1}}属性,该属性需要在所有PayerBranches
列表上循环,并为每个PayerList
项目获取PayerBranches
。// MyApplicationCache Payer Property:
PayerList
每个包含列表的属性都会出现此问题
我不知道是否有更好的方法来缓存数据或我的代码是否存在问题。
是否有更好的缓存方法?