首页 新闻 会员 周边

Sql Server 如何实现数据库缓存……

0
[待解决问题]

Sql Server 如何实现数据库缓存……

Death_Hacker;的主页 Death_Hacker; | 初学一级 | 园豆:59
提问于:2012-06-11 16:56
< >
分享
所有回答(4)
0
SqlConnectionconn=newSqlConnection(strConnection);

 

SqlCommandcommand=newSqlCommand(strCommandText,conn);

SqlCacheDependencydependency=newSqlCacheDependency(command);

 

//注册方法到委托,该委托是

CacheItemRemovedCallbackonRemove=newCacheItemRemovedCallback(RemovedCallback);

//新增或修改一条缓存记录

Cache.Insert(strCacheKey,objAppCache,dependency,absoluteExpiration,

slidingExpiration,CacheItemPriority.Default,onRemove);

http://database.51cto.com/art/200904/122033.htm

悟行 | 园豆:12559 (专家六级) | 2012-06-11 16:58

存储过程查出来的表,可以实现缓存吗?

支持(0) 反对(0) Death_Hacker; | 园豆:59 (初学一级) | 2012-06-11 20:43
0

可以将数据查询出来保存到集合中后,再用缓存数据的方式实现缓存

public static DataTable GetData()
        {
            using (SqlConnection conn = new SqlConnection(strSqlConn))
            {
                using (SqlCommand comd = new SqlCommand("procedure_get_data", conn))
                {
                    comd.CommandType = CommandType.StoredProcedure;
                    SqlDataAdapter sqlDa = new SqlDataAdapter(comd);
                    DataTable dtTable = new DataTable();
                    if (conn.State == ConnectionState.Closed) conn.Open();
                    try
                    {
                        sqlDa.Fill(dtTable);
                    }
                    finally
                    {
                        sqlDa.Dispose();
                    }
                    return dtTable;
                }
            }
        }
   …… DataTable dtData
= null; if(Cache[strCacheKey] == null) { dtData = GetData(); context.Cache.Insert(strCacheKey,dtData,null,DateTime.Now.AddMinutes(20),System.Web.Caching.Cache.NoSlidingExpiration); } else { dtData = Cache[strCacheKey] as DataTable; }
psforever | 园豆:461 (菜鸟二级) | 2012-06-11 21:11
0

查询出来的东西放到缓存中!如果用的是MSSQL,还可以使用SQL缓存依赖,数据库中的指定一些表发生改变缓存就会失效!

xu_happy_you | 园豆:222 (菜鸟二级) | 2012-06-12 09:52
0

注意:用于通知的Select查询有条件限制

http://msdn.microsoft.com/zh-cn/library/ms181122%28v=sql.105%29.aspx

邀月 | 园豆:25475 (高人七级) | 2012-06-13 10:08
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册