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

Ouyangjun_ 2014-11-14 01:10:08
我自己整了个小东西,用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);
}
//list = result.ToList();
return list;
}


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内存。
...全文
548 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
Stephanie_1 2018-05-23
  • 打赏
  • 举报
回复
别看量少,ViewBag.的赋值异常的耗时!!我觉得这货有什么存在的理由
Rajesh_James 2014-11-14
  • 打赏
  • 举报
回复
速度很快,我是强制刷新的(清除缓存)
Ouyangjun_ 2014-11-14
  • 打赏
  • 举报
回复
引用 3 楼 sibiyellow 的回复:
速度不是很快么!!!
请相信,这个确实是有问题,我才发帖出来请教的。 秒进是最在系统运行过后,比如,如果你访问过一次,在比较短的时间内再次访问就很快,但是你隔一段时间再次访问就很慢,感觉他要执行一次数据的提取,这个第一次访问确实很慢,我用我的电脑和我手机(移动4G)网络测试过很多次都很慢,方法上面的输出缓存都是后面才加上去的。
Ouyangjun_ 2014-11-14
  • 打赏
  • 举报
回复
引用 2 楼 u012175253 的回复:
我这边访问很快啊,秒进。
秒进是最在系统运行过后,比如,如果你访问过一次,在比较短的时间内再次访问就很快,但是你隔一段时间再次访问就很慢,感觉他要执行一次数据的提取,这个第一次访问确实很慢,我用我的电脑和我手机(移动4G)网络测试过很多次都很慢,方法上面的输出缓存都是后面才加上去的。
天下如山 2014-11-14
  • 打赏
  • 举报
回复
速度不是很快么!!!
xdashewan 2014-11-14
  • 打赏
  • 举报
回复
其他地方你可能需要日志去分析慢的何处,有一个地方你最好改下 if (SysCache.GetCache(SysConfig.Sys_dbBaseCache) != null) { _db = (ApplicationDbContext)SysCache.GetCache(SysConfig.Sys_dbBaseCache); } 上面代码判断和赋值连续调用两次相同方法,这其实可以只调用1次

62,074

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧