首页 新闻 会员 周边 捐助

asp.net mvc+LocalDB 数据列表页访问太慢,求大师们帮我分析哈

0
悬赏园豆:10 [已关闭问题] 关闭于 2014-11-17 14:46

我自己整了个小东西,用aps.net mvc做到页面,数据使用ado.net Entityframwork,我用的应该算Code first,我先写了几个实体类,用实体类生成的数据,没有连接sql server,直接用的LocalDB,数据的提取代码如下:

  [OutputCache(Duration = 60, VaryByParam = "*")]
        public ActionResult guohuwenda(int id = 1, int index = 1)
        {
            //传入进来的id 是类型id,index是页面的页码
            int s , x;
            List<articles> l = GetArticels(out s, out x, index, id);
            ViewBag.Previous = s;
            ViewBag.Next = x;
            ViewBag.CurrentIndex = index;
            ViewBag.categroy = id;
            return View(l);
        } 
      
        /// <summary>
        /// 
        /// </summary>
        /// <param name="s">上一页是否有效</param>
        /// <param name="x">下一页是否有效</param>
        /// <param name="p">当前的页码,当前第几页</param>
        /// <param name="rid">类型id,数据类型</param>
        /// <returns></returns>
        public List<articles> GetArticels(out int s,out int x,int p = 1,int rid=0)
        { 
            int pageSize = SysConfig.WenDaListPagesize, pageIndex = p-1;  
            List<articles> list = new List<articles>(); 
            if (rid == 0 || rid == 1)
            {
                var result = from i in DB.articless
                         orderby i.CreateTime descending
                         select i;
                int total = result.Count();
                s = p == 1 ? 0 : 1;
                if ((p * pageSize) >= total) x = 0; else x = 1;
                list = result.OrderByDescending(r => r.CreateTime).Skip(pageSize * pageIndex).Take(pageSize).ToList(); ;//.Skip(pageSize * pageIndex).Take(pageSize); 
            }
            else {
                var result = from i in DB.articless
                             where i.classID== rid
                             orderby i.CreateTime descending
                             select i;
                int total = result.Count();
                s = p == 1 ? 0 : 1;
                if ((p * pageSize) >= total) x = 0; else x = 1;
                list = result.OrderByDescending(r => r.CreateTime).Skip(pageSize * pageIndex).Take(pageSize).ToList(); ;//.Skip(pageSize * pageIndex).Take(pageSize); 
            }  

DB 是在BaseController中的一个属性:

 private ApplicationDbContext _db;
        /// <summary>
        /// 共用的数据库对象
        /// </summary>
        public ApplicationDbContext DB
        {
            get {
                if (_db == null)
                {
                    if (SysCache.GetCache(SysConfig.Sys_dbBaseCache) != null)
                    {
                        _db = (ApplicationDbContext)SysCache.GetCache(SysConfig.Sys_dbBaseCache);
                    }
                    else
                    {
                        _db = new ApplicationDbContext();
                        SysCache.SetCache(SysConfig.Sys_dbBaseCache, _db);
                    }
                }
                return _db;
            } 
        }

求大师们帮我分析分析,这个到底咋个的

网页访问这个列表页面,每次加载时间至少是10秒以上,这个太不科学了。没有找到原因哦!

 

这个是发布后的效果,很慢啊  

http://www.kdtianxia.com/qicheguohu/guohuwenda/1/1

另外也说说我的服务器,感觉不应该是服务器的问题,因为其他的页面都没有这么慢,阿里云的单核服务器,1M带宽,2G内存。

留下的枇杷的主页 留下的枇杷 | 初学一级 | 园豆:6
提问于:2014-11-14 12:57
< >
分享
所有回答(1)
0

很快啊  http://www.kdtianxia.com/qicheguohu/guohuwenda/1/1

程序员编程日记 | 园豆:6 (初学一级) | 2014-11-14 14:42
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册