首页 > 其他 > 详细

数据量较大时,把数据放入缓存中的处理办法

时间:2014-04-18 06:28:50      阅读:730      评论:0      收藏:0      [点我收藏+]

public List<DataSource> TrafficLog
{
get
{
List<DataSource> result = new List<DataSource>();
if (Session["TrafficLog"] == null || (DateTime.Now - (DateTime)Session["Refunsh"]).Minutes > 10)
{
//默认查询当前月的数据       
var monthNow = Convert.ToDateTime(DateTime.Now.ToString("yyyy-MM"));
int user_state = (int)User_StateEnum.No;//有效用户




var trafficLog = from a in DataHelper.Set<T_WebAppTrafficLog>()
join b in DataHelper.Set<T_User>()
on a.OwnerId equals b.User_ID
where b.CompanyId == LoginUserCompanyID //当前登录人的公司
&& a.CreateTime >= monthNow            //当前月
&& b.State == user_state
group a by new { a.OwnerId, b.User_Name } into c
select new DataSource
{
User_Name = c.Key.User_Name,
Data3G = c.Sum(p => p.G3_Increment),
};


// 总共个数
var appCount = trafficLog.Count();
List<DataSource> chart_source = new List<DataSource>();
if (appCount > 0)  //是否显示图表
{
if (appCount > topView)
{
appCount = topView;
}


var aa = trafficLog.Select(p => new DataSource()
{
User_Name = p.User_Name,
Data3G = p.Data3G,
}).ToList().OrderByDescending(p => p.Data3G).Take(appCount);


chart_source = aa.Select(p => new DataSource
{
User_Name = p.User_Name,
Data3G = Decimal.Round(Convert.ToDecimal(p.Data3G), 2),
}).ToList();
}


Session["TrafficLog"] = chart_source.ToList();
Session["Refunsh"] = DateTime.Now;  //刷新目录时间间隔为10分钟
}
result = Session["TrafficLog"] as List<DataSource>;
return result;
}
set
{
Session["TrafficLog"] = value;
}
}




每隔10分钟缓存一次,不需要每次加载的时候都从数据库中抓取~~

数据量较大时,把数据放入缓存中的处理办法,布布扣,bubuko.com

数据量较大时,把数据放入缓存中的处理办法

原文:http://blog.csdn.net/anpan1045535101/article/details/23941123

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!