易截截图软件、单文件、免安装、纯绿色、仅160KB

学习ASP.NET的缓存依赖机制

 高效使用使用SQL缓存依赖
 
ASP.NET Framework新增的一个非常强大的功能是SQL缓存依赖。该功能允许底层数据库中的数据修改时,自动地重新载入缓存的数据。
在使用绝对缓存过期策略或者弹性缓存过期策略时有一个权衡,对于性能和陈旧数据的权衡。例如,如果在内存中缓存数据20秒,则这20秒内显示的数据可能是过期的。
对于大多数应用程序来说,就算显示过期数据也没什么关系。例如,如果我们构建一个论坛讨论区,则每个用户都能接受新的主题可能不是实时显示的。
然而,某些类型的应用程序则绝对不能有陈旧数据。例如,如果我们创建一个股票交易网站或者拍卖网站,那么每一秒的数据都很关键。
ASP.NET Framework支持的SQL缓存依赖使得使用缓存时可以充分利用缓存,并且最小化陈旧数据。当使用SQL缓存依赖时,可以自动监测底层数据库中的数据是否变更,并刷新缓存中的数据。
ASP.NET Framework支持两种类型的SQL缓存依赖:轮询和推。可以对任何最近版本的Microsoft SQL Server,包括Microsoft SQL Server 2005 Express、Microsoft SQL Server 2000和Microsoft SQL Server 7.0,使用轮询SQL缓存依赖。第二种类型的缓存依赖——推SQL缓存依赖则只能用于Microsoft SQL Server 2005和Microsoft SQL Server 2005 Express,因为它依赖SQL Server 2005 Service Broker。
可以对页面输出缓存、数据源控件缓存和数据缓存使用任意类型的SQL缓存依赖。接下来将依次讨论每一种场景。
4.6.1 使用轮询SQL缓存依赖
轮询SQL缓存依赖是最灵活的SQL缓存依赖类型,所以对大多数应用程序来说,推荐使用轮询SQL缓存依赖。可以使用轮询SQL缓存依赖来检测数据库表的修改。
实质上,轮询SQL缓存依赖使用数据库触发器。当表被修改时,触发器被触发,名为AspNet_ SqlCacheTablesForChangeNotification的数据库表的一行数据将被更新,用来记录表被修改的情况。
ASP.NET Framework使用一个后台线程,用来定期轮询数据库表的修改信息。如果有修改,则依赖于数据库表的缓存项目从缓存中移除。
如果使用轮询SQL缓存依赖,则可以消除大多数和数据库的通信消费。如果数据库表还没有更改, Web服务器和数据库服务器之间唯一的通信是检查AspNet_SqlCacheTablesForChange- Notification表的修改的查询。
因为轮询SQL缓存依赖必须轮询数据库的修改,使用轮询SQL缓存依赖的缓存项目只有在数据修改时才会立即失效。轮询时间间隔的大小决定了缓存数据的陈旧程


相关文档:

ASP.NET拆分单元格方法

 protected void Unite(GridView gv)
    {
        int i;
        string LastType1;
        int LastCell;
        if (gv.Rows.Count > ......

ASP.NET的ACCESS数据库操作类

//private string datapatch = ConfigurationSettings.AppSettings["acessconn"];//数据库地址 
private string datapatch = "db/global.asa";//数据库地址 
/// 
/// 取得dataset 
// 
/// 查询语句 
/// 
public DataSet GetDataSet(string Commandtext) 
{&nbs ......

ASP.NET FileUpload应用实例

Default.aspx:
<%@ Page Language="C#" AutoEventWireup="true" 
CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" ......

Ajax 基础 (asp.net C#)


<script type="text/javascript">
        var xmlHttp;
        function createXMLHttpRequest()
        {
            ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号