gpt4 book ai didi

c# - 在 session 中缓存搜索结果与保持大对象堆清洁

转载 作者:太空狗 更新时间:2023-10-29 21:51:53 26 4
gpt4 key购买 nike

好吧,我已经在 ASP.NET 项目上工作了一段时间,似乎我做出了一些糟糕的设计选择,随着项目在包含方面变得越来越大,这些选择又回来困扰着我数据。

在阅读了 .NET 内存管理之后,我想我已经确定了一整套潜在的原因。由于我正在做的事情并不是特别特别,我想知道是否有一种标准模式可以实现我想做的事情,而我却没有。

所以我有一个(有点昂贵的查询)产生了 1 到 20000 个结果。在后续请求中,我们可能只是通过结果集进行分页,因此我将此结果存储在 session 中。 session 是 InProc。我想知道:

  • 是否有意义 a) 将结果存储 b) 在 session 中 c) 在进程中?我想要 (a) 的速度。我不知道是否有比由用户 (b) 存储它更有效的方法,如果我使用更复杂的状态服务器——它不会变慢 (c)?或者这可能是解决方案,更快地处理这些大对象,而不是将最后一个结果集保留在 RAM 中直到 session 过期?

  • 如果任何结果集 > ~ 20000 行最终可能会弄乱 LOH,是否有通用的方法来解决这个问题?

我知道这个问题有点不明确。我刚刚意识到我的整体设计可能存在缺陷(w.r.t. 可扩展性),我只是想估计到底有多大缺陷。我希望可以收集一些关于标准模式的提示,将其变成一个普遍有用的问题。

最佳答案

为什么总是返回所有记录??我认为加快查询速度的最佳方法是只返回用户需要的数据.. 所以只返回适合页面的数据!

尝试使用谷歌搜索 ROW_NUMBER() (SQL Server) 或 LIMIT (mySQL)。

这里有2个商品教程

1) ScottGu's Blog

2) 15 Second Tutorial

关于c# - 在 session 中缓存搜索结果与保持大对象堆清洁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6060004/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com