Cache的使用時機
原本對於何時使用 Cahe還是迷迷糊糊的
但最近幫公司客戶寫了一個小程式為了要看股市資訊
股市資訊必需每10秒更新一次,還要和前一營業日的資料比對漲跌
在一開始時資料量少所以OK
但最近資料量大起來了10萬多筆資料,50人上下,每10秒非同步查詢資料
DBA馬上反應 DB Server 的效能(使用量居然在某一段一真有500~600 個 Rquire)
所以想到了使用 Cache 將查回的DataTable Cache 5秒,50人在這段時間可以共用資訊
程式做法如下
if (Cache["ContentD"] != null)
{
dt = (DataTable)Cache["ContentD"];
}
else
{
//建立查詢用 DTO Cust
DTOQuery custInfo = new DTOQuery();
custInfo.Patameters = this.GetSQLColumns(AppSettingsName.SQLContentD01);
dt = this._Dao.GetContentD01List(custInfo);
Cache.Insert("ContentD",dt,null,System.Web.Caching.Cache.NoAbsoluteExpiration,new TimeSpan(0,0,5));
this.OldData = this.NewData;
this.NewData = dt;
}
GridView1.DataSource = dt;
GridView1.DataBind();