Cache的使用時機

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();