Nic*_*s78 6 c# asp.net session-state out-of-memory large-object-heap
好吧,所以我一直在研究ASP.NET项目一段时间,似乎我做了一些糟糕的设计选择,这些选择后来困扰着我,因为项目在包含的数据方面不断变得越来越大.
在阅读了.NET内存管理之后,我想我已经找到了一整套潜在的原因.由于我正在做的事情并不是特别特别,我想知道是否有一个标准模式来实现我想要做的事情,我错过了.
所以我有一个(有点昂贵的查询)产生1到20000个结果之间的东西.在后续请求中,我们可能只是在结果集中进行分页,因此我将此结果存储在会话中.会话是InProc.我在想:
是否有意义a)将结果b)存储在会话c)进程中?我想要(a)的速度.我不知道是否有一种更有效的方式,而不是用户(b)存储它,如果我使用更复杂的状态服务器 - 它不是更慢(c)?或者这可能是解决方案,更快速地处理那些大对象而不是将最后的结果集保留在RAM中直到会话到期?
如果任何结果集> ~20000行最终可能搞乱了LOH,是否有一种通用的方法可以解决这个问题?
我知道这个问题略有不足.我刚刚意识到我的整体设计可能存在缺陷(可扩展性),而我只是想估计它究竟有多么缺陷.我希望可以收集一些关于标准模式的提示,然后将其变成一个普遍有用的问题.
为什么总是返回所有记录?我认为加快查询速度的最佳方法是仅返回用户所需的数据..因此仅返回适合页面的数据!
尝试在谷歌上搜索 ROW_NUMBER() (SQL Server) 或 LIMIT (mySQL)。
这里有2个商品教程
1) ScottGu 的博客
2) 15秒教程
| 归档时间: |
|
| 查看次数: |
1237 次 |
| 最近记录: |