Asp.net Cache会存多少数据

Asp.net Cache能存多少数据?
    最近做一个网页的报表查询的系统。查出的数据量很大,且总是访问很多的表,想提高查询效率,降低对数据库的访问。目前思路是一次查出之后,放在Cache中,并分页显示。
    不知这个思路是否合适?另外不知Cache能放多大的数据

------解决方案--------------------
那取决于你服务器的可用内存
------解决方案--------------------
cache不是问题,但就怕你一次取太多,你的系统吃不消,而且也不利于维护,万一崩溃了,你的系统能马上投入使用吗?

数据挖掘还是主要看DB的设计,平时多做一次,最后能省力很多,比如我把一年分开四个季度进行各项总计,最后统计我只调用这个表几行数据,就能完成你调用几百万的数据汇总。
------解决方案--------------------
个人觉得这个数据量的信息放在Cache里面显然是不合理的。
首先要弄清楚,你是搜索几千万条数据的数据库,还是从数据库中搜出几千万条结果?
1、如果是搜索数据库,可以从索引优化入手;
2、如果是从数据库搜出几千万的结果,是否有这个必要,屏幕就这么大,搜这么大量的数据,能一次显完,
如果显示不完,不如遵循所要及所需的原则,要多少(显示多少),搜索多少,这个使用分页查询可以
方便的实现,也不暂用什么大资源、大带宽的问题。
------解决方案--------------------
大家看LZ的问题吧..


引用
几千几万


是几万 不是几千万...所以 没必要了

而且你是管理系统,个人感觉就跟没必要了..现用现查吧....

而且分页显示而已 每页就10条..你才几万数据 小题大做了
------解决方案--------------------
引用:
Quote: 引用:

cache不是问题,但就怕你一次取太多,你的系统吃不消,而且也不利于维护,万一崩溃了,你的系统能马上投入使用吗?

数据挖掘还是主要看DB的设计,平时多做一次,最后能省力很多,比如我把一年分开四个季度进行各项总计,最后统计我只调用这个表几行数据,就能完成你调用几百万的数据汇总。


做了各项统计,取统计报表时直接取统计结果。现在考虑的是用户查询明细数据,会不会产生问题,如何解决


这个容易,说一点别人不常说的,多加默认条件,缩小用户盲选范围,再说点常说的,用存储过程,分页显示
------解决方案--------------------
呃,几千几万?我以为是楼主手误。几千万?
------解决方案--------------------
才万级不到的级别,没必要搞得这么麻烦,现查现用。
------解决方案--------------------
两种情况:
1、把你所需的数据封装在存储过程里面,包括你所要的表、各种条件、业务逻辑,
然后再用分页技术返回一个数据集(每个表都只返回显示的那一部分)。
2、如果条件、业务逻辑过于复杂,在存储过程里面无法完成,那么可以在存储过程
中读取一部分数据(这部分数据是经过一些简单的条件过滤得到的),再分页过滤,
这样你返回的数据量就会大大减少。通过存储过程返回一个数据集,你在程序中在
慢慢过滤、处理。

思路上,绝对不会你这个数据保存缓存中的,缓存可以优化速度、减少每一次的请求
开销,但不能滥用。按之前你所描述的思路,属于治根不治本,三思啊。
------解决方案--------------------
把精力花在如何减少每次请求返回的数据结果上,别等到返回大数据了才回过头去优化。
------解决方案--------------------
几千几万,只要在数据查询的优化做好的话,应该是不需要做cache吧。 个人感觉,做查询优化会比较好。
------解决方案--------------------
这么小的数据量 直接查询就用了··
------解决方案--------------------
LZ人呢 到底是几千到几万的数据量还是几千万的数据量啊
------解决方案--------------------
思路没问题,cache的大小取决于你内存的大小
------解决方案--------------------
思路可以,不过实际运用不建议自己写,会有各种问题,需要现成组件支持

另外 缓存之和服务器是 32位 64位 还有内存大小有关

32位 一般 1.5g左右.NET会崩溃, 64位 无限制,之和内存多少有关.
------解决方案--------------------
数据量比较大的情况,还是不要一下子搜索出来的好,还是需要多少取多少的好,一下子全取出来,第一时间长,第二占用资源,第三,不是所有人会一下子把数据看完吧。比方说你一页显示50条,那你每次就取50条,翻页的时候,再去读取,这样速度快,还占资源少。
------解决方案--------------------
如果数据很少变动~ 且如你收只有几万~
思路可惜~
如果是.Net 4
建议用MemoryCache
using System.Runtime.Caching;


namespace CodeHelper.Runtime
{
    /// <summary>
    /// 内存缓存管理类
    /// </summary>
    public partial class MemoryCacheManager : ICacheManager
    {
        protected ObjectCache Cache
        {
            get
            {
                return MemoryCache.Default;
            }
        }
------解决方案--------------------
几千几万的数据  现用现查足够了   
------解决方案--------------------
这个取决于服务器的可用内存吧