ASP.NET 输出缓存的一项高级功能是 SQL 缓存依赖项。SQL 缓存依赖项使您可以缓存依赖于 SQL Server 表中数据的页。您可以配置 SQL Server 和 ASP.NET 以缓存页请求,降低服务器工作负荷,直到页所依赖的数据已在 SQL Server 中更新为止。对于相对保持静态的产品目录或客户注册信息等数据而言,SQL 缓存依赖项很有用。
本演练中阐释的任务包括:
-
创建并配置页,以显示 Northwind 数据库中的数据。
-
为 SQL 缓存通知启用数据库。
-
在页以及 Web.config 文件中指定 SQL 缓存依赖项。
-
对 Northwind 数据库进行更改并查看缓存行为。
先决条件若要完成本演练,您需要:
-
对具有 Northwind 数据库的 SQL Server 2000 或 SQL Server 2005 的访问。
-
SQL Server Northwind 数据库的访问权限。有关下载和安装 SQL Server 示例数据库 Northwind 的信息,请参见位于 Microsoft SQL Server 网站上的“Installing Sample Databases”(安装示例数据库)。
注意 如果需要有关如何登录到运行 SQL Server 的计算机的信息,请与服务器管理员联系。
-
Microsoft 数据访问组件 (MDAC) 2.7 版或更高版本。
如果您使用的是 Windows XP 或 Windows Server 2003,那么您已经有了 MDAC 2.7。但是,如果使用 Windows 2000,您可能需要升级您计算机上已经安装的 MDAC。有关更多信息,请参见 MSDN 文章“MDAC Installation”(MDAC 安装)。
-
.NET Framework 2.0 版。
创建网站如果您已在 Visual Web Developer 中创建了网站(请参见 演练:在 Visual Web Developer 中创建基本网页),则可以使用该网站并转至本演练的后面部分“为 SQL Server 启用缓存通知”。否则,按照下面的步骤创建一个新的网站和网页。
创建文件系统网站
-
打开 Visual Web Developer。
-
在“文件”菜单上单击“新建网站”。(在 Visual Web Developer 速成版中,在“文件”菜单上单击“新建”,然后单击“网站”。)
出现“新建网站”对话框。
-
在“Visual Studio 已安装的模板”之下单击“ASP.NET 网站”。
-
在“位置”框中输入要保存网站页面的文件夹的名称。
例如,键入文件夹名 C:\WebSites。
-
在“语言”列表中,单击您想使用的编程语言。
-
单击“确定”。
Visual Web Developer 创建该文件夹和一个名为 Default.aspx 的新页。
为 SQL Server 启用缓存通知
向网页添加时间戳和数据现在可以创建网页来演示缓存处理。在本节中,您将添加一个时间戳来跟踪页创建时间,并添加一个 GridView 控件来查看 Northwind 数据库的 Employees 表。
向网页添加时间戳和数据
-
切换到或打开 Default.aspx 页。
-
切换到“设计”视图。
-
从工具箱的“标准”组中,将一个 Label 控件拖到页上,保留默认名称 Label1。
-
在“服务器资源管理器”(Visual Web Developer 速成版中为“数据库资源管理器”)中,展开“数据连接”。
-
为以前创建的数据连接展开节点。
-
展开“表”节点。
-
将 Employees 表拖到页上。
Visual Web Designer 创建一个 GridView 控件,它配置为使用您所选择的连接和表。
-
在“GridView 任务”菜单上,单击“配置数据源。
默认数据连接字符串名称 NorthwindConnectionString1 出现在“配置数据源”向导的第一个步骤中。
-
单击“下一步”。
-
在“配置 Select 语句”窗格中,选择“指定来自表或视图的列”。
-
在“名称”列表中,单击 Employees。
-
在“列”列表中,选择 EmployeeID、LastName 和 FirstName 列。
-
单击“下一步”。
-
单击“完成”。
Visual Web Designer 配置 GridView 控件以显示您所选择的数据。
注意 如果看到一条消息询问您是否要刷新 GridView 控件的字段和键,单击“是”。
-
双击页的空白部分。
设计器生成 Page_Load 方法并切换视图。
-
添加以下突出显示的代码,以显示指示页创建的时间戳:
Visual BasicProtected Sub Page_Load(ByVal sender As Object, _ ByVal e As System.EventArgs) _ Handles Me.Load <b> Label1.Text = System.DateTime.Now</b> End Sub
C#protected void Page_Load(Object sender, System.EventArgs e) { <b> Label1.Text = System.DateTime.Now.ToString();</b> }
-
保存该文件。
为缓存功能配置网页在本部分演练中,您将基于 Northwind 数据库的 Employees 表为 SQL 缓存依赖项配置页。
为缓存功能配置网页
-
切换到“源”视图。
-
在页顶部,添加下面的指令以指示依赖项:
<%@ OutputCache Duration="3600" SqlDependency="Northwind:Employees" VaryByParam="none" %>
VaryByParam 属性指示缓存时 ASP.NET 是否应考虑页参数(如查询字符串或发布值)。当 VaryByParam 设置为 none 时,将不考虑任何参数;无论提供什么附加参数,都将向所有用户发送相同的页。将 VaryByParam 设置为 *(星号)表明,对于每个唯一的请求参数组合,将缓存一个唯一页。但是,将 VaryByParam 设置为 * 会缓存页的许多不同版本,所以如果您知道缓存变化所依据的参数,建议您在 VaryByParam 属性中显式指定这些参数。有关详细信息,请参见 缓存页的多个版本。
在 Web.config 文件中设置缓存配置
更改数据
