我应该使用Session / Cache来存储DataSet,还是应该每次都从数据库中获取新的?

时间:2012-08-17 18:41:30

标签: asp.net .net session caching dataset

制作数据集的编码量通常很大。现在,在处理来自多个ASP.NET页面的数据请求时,我不确定行业标准或最佳实践。我应该使用缓存/会话在页面之间传递DataSet,还是应该直接从数据库中获取每个页面?

这里最常用的方法是什么?

2 个答案:

答案 0 :(得分:2)

以下是我的想法:

这取决于数据库和您尝试获取的数据类型,以及可能修改数据的内容。您是否有与您想要的数据同时运行的后端进程?此数据是仅因当前页面而更新,还是根本更新?有多少人会使用这个页面?

我个人几乎总是打电话给数据库,因为有很多关于这类事情的假设。任何时候数据都可以改变;它永远不会像人们想象的那样静止。我个人会在任何一天亲自交换正确的数据。

但这只是我个人而已。这个问题是如此开放,以至于不可能把每一件事都考虑在内,因为我不知道你的数据库结构,也不知道检索它的成本是多少,也不是你用它的原因。

抱歉,我真的无法提供更多帮助。

答案 1 :(得分:1)

这取决于你的需要。如果数据大小非常大,则不要将其保存在Session或Cahce中,因为会话或缓存存储在服务器内存中。会话是特定于用户的,它将为服务器中的每个用户存储数据,因此请避免使用它。我认为您应该在每次需要时直接获取数据,不要将其保存在会话中。如果数据非常小/有限,那么您可以将其保存在会话中(例如UserName或UserId等)。如果您使用gridview来显示showdata,那么使用分页并在每个页面上请求从数据库中获取数据。