您的位置:首页 > 博客中心 > 数据库 >

使用 SQL 缓存依赖项,数据库缓存依赖 (附实例)

时间:2022-03-13 23:00

使用 SQL 缓存依赖项

最简单的缓存策略就是使缓存数据在一个指定的时间周期后过期。但是这个简单的方法意味着缓存数据没有保持与底层数据源的联系,从而导致过期数据长时保存或当前数据很快过期。更好的方法是使用 SqlCacheDependency 类,这样数据一直被缓存,直到其底层数据在 SQL 数据库中被修改。本篇教程将讲解怎样使用这个类。


上面的脚本执行之后,再在代码中配置web.config文件,如下:

1:数据库的连接字符串

<connectionStrings>
    <add name="ConnectionString" connectionString="Data Source=128.45.4.34;Initial Catalog=RMA_DWH;Persist Security Info=True;User ID=sa;Password=23WSXCDE#@;Max Pool Size = 51200;" providerName="System.Data.SqlClient"/>
  </connectionStrings>

2: 缓存的配置项:

<caching>
      <sqlCacheDependency enabled="true" pollTime="1000" >
        <databases>
          <add name="RMA_DWH" connectionStringName="ConnectionString" />
        </databases>
      </sqlCacheDependency>
    </caching>

3:asp.net代码的使用:

protected void Page_Load(object sender, EventArgs e)
        {
            string TS;
            DateTime time = DateTime.Now;
            bool b = false;
            DataTable DT = new DataTable();
            <span style="color:#ff0000;">DataTable DT_Article =(DataTable)Cache["ARTICLE"];</span>
            if (DT_Article != null)
                DT = DT_Article;
            else
            {
                Common.SqlBase SB = new Common.SqlBase();
                DT = SB.Query_Table("SELECT TOP 1000  * FROM dbo.RMA_V_ARTICLE");
                <span style="color:#ff6666;">SqlCacheDependency productsTableDependency = new SqlCacheDependency("RMA_DWH", "RMA_R_ARTICLE_LOCAL_ATTR");
                Cache.Insert("ARTICLE", DT, productsTableDependency, Cache.NoAbsoluteExpiration, Cache.NoSlidingExpiration);</span>
                b = true;
            }
            TS = (DateTime.Now - time).TotalSeconds.ToString();
            if (!b)//使用缓存
            {
                labState.Text = "使用缓存 " + TS + " s    " + DateTime.Now;
            }else
            {
                labState.Text = "未使用缓存 " + TS + " s    " + DateTime.Now;
            }
            ProductsDeclarative.DataSource = DT;
            ProductsDeclarative.DataBind();
            
        }


ASP.NET的缓存依赖机制-SQL缓存依赖篇
http://blog.itpub.net/12639172/viewspace-618184/
使用 SQL 缓存依赖项
http://msdn.microsoft.com/zh-cn/dd263032
http://msdn.microsoft.com/zh-cn/dd263037


aspnet_regsql.exe -S server -U user -P password -d database -ed
aspnet_regsql.exe -S 128.45.4.34 -U sa -P 23WSXCDE#@ -d RMA_DWH -ed 




aspnet_regsql.exe -S <i>server</i> -U <i>user</i> -P <i>password</i> -d <i>database</i> -t <i>tableName</i> -et 
aspnet_regsql.exe -S 128.45.4.34 -U sa -P 23WSXCDE#@ -d RMA_DWH -t RMA_R_ARTICLE_LOCAL_ATTR -et
aspnet_regsql.exe -S 128.45.4.34 -U sa -P 23WSXCDE#@ -d RMA_DWH -t RMA_R_PURCHACE_ATTR -et
  
SqlDependency和SqlCacheDependency缓存的用法及具体步骤
http://www.webkaka.com/tutorial/asp.net/2012/111912/


如何在ASP.NET调用Global.asax文件
http://www.veryhuo.com/a/view/9402.html

热门排行

今日推荐

热门手游