【问题标题】:Should I use Session/Cache to store the DataSet or should I fetch fresh from the Database each time?我应该使用 Session/Cache 来存储 DataSet 还是应该每次都从数据库中获取新数据?
【发布时间】:2012-08-14 05:37:09
【问题描述】:

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

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

【问题讨论】:

  • 您必须权衡数据更改的频率与检索数据的成本。不知道这一点,我不确定有人能回答。

标签: asp.net .net session caching dataset


【解决方案1】:

以下是我的想法:

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

我个人几乎总是调用数据库,只是因为当涉及到这种事情时有太多假设。数据随时可能发生变化;它永远不会像人们想象的那样静止。我个人每天都会用正确的数据来交换性能。

但这只是我个人。这个问题是如此开放,以至于不可能考虑到每一件事,因为我不知道你的数据库结构,也不知道检索它有多昂贵,也不知道你用它做什么。

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

    • 您如何定义“非常大”?我知道这在很大程度上取决于网络服务器配置,但相对估计应该会有很好的帮助。
    猜你喜欢
    • 1970-01-01
    • 2011-10-26
    • 2018-05-28
    • 1970-01-01
    • 1970-01-01
    • 2020-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多