SQL Server 高速缓存依赖分析

前端之家收集整理的这篇文章主要介绍了SQL Server 高速缓存依赖分析前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

一,使数据库支持sql高速缓存依赖性。
二,使表支持sql高速缓存依赖性。
三,在ASP.NET应用程序的web.config文件中包含sql连接字符串。
四,以如下方式利用sql高速缓存依赖性:
1)在代码中编程创建一个sqlCacheDependency对象。
2)给OutputCache指令添加sqlCacheDependency属性
3)通过Response.AddCacheDependency给Response对象添加sqlCacheDependency实例。 <SPAN style="LINE-HEIGHT: 1.5em"><SPAN style="FONT-SIZE: small"><SPAN style="COLOR: rgb(0,255); LINE-HEIGHT: 1.5em">开启高速缓存依赖性的参数简要说明
<SPAN style="COLOR: rgb(255,0); LINE-HEIGHT: 1.5em">-d <SPAN style="FONT-SIZE: small"> 用于sql高速缓存依赖性的数据库名。数据库可以使用连接字符串和-c选项指定<SPAN style="COLOR: rgb(255,0); LINE-HEIGHT: 1.5em">(必选)
<SPAN style="COLOR: rgb(255,0); LINE-HEIGHT: 1.5em">-ed 允许数据库启用sql高速缓存依赖性。
<SPAN style="COLOR: rgb(255,0); LINE-HEIGHT: 1.5em">-dd 禁止数据库启用sql高速缓存依赖性。
<SPAN style="COLOR: rgb(255,0); LINE-HEIGHT: 1.5em">-et 允许表启用sql高速缓存依赖性。需要-t选项。
<SPAN style="COLOR: rgb(255,0); LINE-HEIGHT: 1.5em">-dt 禁止表启用sql高速缓存依赖性。需要 -t 选项。
<SPAN style="COLOR: rgb(255,0); LINE-HEIGHT: 1.5em">-t <table> 支持禁止sql高速缓存依赖性的表名。需要 -et 或 -dt 选项。
<SPAN style="COLOR: rgb(255,0); LINE-HEIGHT: 1.5em">-lt 列出所有启用sql高速缓存依赖性的表。<SPAN style="FONT-SIZE: small"> <SPAN style="LINE-HEIGHT: 1.5em"><SPAN style="COLOR: rgb(0,255); LINE-HEIGHT: 1.5em"><SPAN style="FONT-SIZE: small">在sql Server <SPAN style="COLOR: rgb(255,0); LINE-HEIGHT: 1.5em">2000中使用高速缓存禁用功能(在2005中也可以进行如下设置)
<SPAN style="FONT-SIZE: small">要在sql 2000中使用高速缓存禁用功能,必须执行如下两步:
第一步是使相应的数据库支持功能
第二步是使要使用的表支持功能
例:
<SPAN style="COLOR: rgb(153,0); LINE-HEIGHT: 1.5em"><SPAN style="FONT-SIZE: small">aspnet_regsql -S localhost -U sa -P sa -d Northwind -ed
<SPAN style="FONT-SIZE: small">注:<SPAN style="FONT-SIZE: small; COLOR: rgb(0,255); LINE-HEIGHT: 1.5em">将本机上的Northwind数据库开启高速缓存依赖功能
<SPAN style="FONT-SIZE: small; COLOR: rgb(153,0); LINE-HEIGHT: 1.5em">aspnet_regsql -S localhost -U sa -P sa -d Northwind -dd
<SPAN style="FONT-SIZE: small">注:<SPAN style="COLOR: rgb(0,255); LINE-HEIGHT: 1.5em">禁用本机上的Northwind数据库的高速缓存依赖功能。使用次命令后,数据库中的所有表的高速缓存禁用功能自动关闭,AspNet_sqlCacheTablesForChangeNotification表也会自动删除
开启表的高速缓存依赖功能
例:
<SPAN style="COLOR: rgb(153,0); LINE-HEIGHT: 1.5em">aspnet_regsql -S localhost -U sa -P sa -d Northwind -t Products -et
注:<SPAN style="COLOR: rgb(0,255); LINE-HEIGHT: 1.5em">为Northwind数据库中的Products表开启高速缓存依赖功能
<SPAN style="COLOR: rgb(153,0); LINE-HEIGHT: 1.5em">aspnet_regsql -S localhost -U sa -P sa -d Northwind -t Products -dt
注:<SPAN style="COLOR: rgb(0,255); LINE-HEIGHT: 1.5em">为 Northwind数据库中的Products表关闭高速缓存依赖功能。通过这个方法可以为一个数据库中的一个或多个表开启高速缓存依赖功能。为数据库和表开启高速缓存依赖功能后,可以发现Northwind数据库添加了一个 AspNet_sqlCacheTablesForChangeNotification表,表示配置成功了。
<SPAN style="COLOR: rgb(153,0); LINE-HEIGHT: 1.5em">aspnet_regsql -S localhost -U sa -P sa -d Northwind -lt
<SPAN style="COLOR: rgb(0,255); LINE-HEIGHT: 1.5em">使用-lt参数可以查看该数据库中哪些表开启了高速缓存依赖功能。如果数据库关闭了高速缓存依赖或者没有启用高速缓存依赖功能,使用此命令将会得到错误提示。<SPAN style="FONT-SIZE: small"> <SPAN style="LINE-HEIGHT: 1.5em"><SPAN style="COLOR: rgb(0,255); LINE-HEIGHT: 1.5em"><SPAN style="FONT-SIZE: small">关于sql 2005的高速缓存禁用功能
<SPAN style="FONT-SIZE: small">sql Server 2005支持高速缓存的编程和声明技术。在OupputCache指令中使用CommandNotification字符串就可以给页面建立基于通知的高速缓存。可以编程指定sql高速缓存选项,或声明该选项,但不能同时使用这两种方法sql2005的缓存依赖无需web.config的配置,也不用为数据库和表开启缓存依赖功能,由于05内置了一个通知传递服务,该服务可以实现检测数据的更改、实现更改通知传递等功能,因此不需要不断轮询数据库来检测数据更新了。
<SPAN style="COLOR: rgb(255,0); LINE-HEIGHT: 1.5em">注:虽然05中的缓存依赖使用很简单,但目前我还没有找到更多的相关资料,还没有亲自进行测试,主要原因还没搞清楚怎么才能开启Broker服务,以后有时间在进行测试吧。<SPAN style="LINE-HEIGHT: 1.5em"><SPAN style="COLOR: rgb(0,255); LINE-HEIGHT: 1.5em"><SPAN style="FONT-SIZE: small">配置ASP.NET应用程序
<SPAN style="FONT-SIZE: small">使用数据库和其中的几个表支持sql Server高速缓存禁用功能后,就要为sql Server高速缓存禁用功能配置应用程序。
要配置应用程序,以使用sql Server高速缓存禁用功能,首先应修改web.config文件。在此文件中,指定要使用的数据库,并让ASP.NET连接它。
如:
<SPAN style="FONT-SIZE: small; COLOR: rgb(153,0); LINE-HEIGHT: 1.5em">
<add <SPAN style="COLOR: rgb(255,0); LINE-HEIGHT: 1.5em">name="NorthwindConnectionString" connectionString="Data Source=.;Initial Catalog=Northwind;User ID=sa;Password=sa"
providerName="System.Data.sqlClient" />
<SPAN style="FONT-SIZE: small">
<SPAN style="LINE-HEIGHT: 1.5em"><SPAN style="COLOR: rgb(153,0); LINE-HEIGHT: 1.5em"><SPAN style="FONT-SIZE: small"> <system.web>
<SPAN style="FONT-SIZE: small"><SPAN style="COLOR: rgb(255,0); LINE-HEIGHT: 1.5em">
<sqlCacheDependency enabled="true" pollTime="500">


<add name="Northwind" connectionStringName ="NorthwindConnectionString" pollTime="500"/>



</system.web>
<SPAN style="FONT-SIZE: small">注:首先使用web.config文件中的元素,建立了与数据库的连接字符串。然后通过元素为sql Server高速缓存功能进行配置。要是使用sql Server高速缓存依赖性,所以必须使用<sqlCacheDependency enabled="true">节点,并启用该功能。在节点中引用数据库。<SPAN style="FONT-SIZE: small">
<SPAN style="COLOR: rgb(0,255); LINE-HEIGHT: 1.5em">元素中的属性说明:
<SPAN style="COLOR: rgb(255,0); LINE-HEIGHT: 1.5em">name:为sql Server数据库提供一个标识符。
<SPAN style="COLOR: rgb(255,0); LINE-HEIGHT: 1.5em">connectionStringName:指定连接的名称
<SPAN style="COLOR: rgb(255,0); LINE-HEIGHT: 1.5em">pollTime:指定sql Server轮流检测的时间间隔,默认为5秒或500毫秒。sql 2005通知功能不需要这个属性
web.config 文件配置正确后,就可以在页面上使用sql Server高速缓存禁用功能了。ASP.NET会把sql Server请求放在AspNet_sqlCacheTablesForChangeNotification表的一个完全不同的线程上,看看 changeId号是否递增了,如果该数字有变化,ASP.NET就知道对底层的sql Server表进行了修改,应检索一个新的结果集。它确定是否应进行sql Server调用时,对AspNet_sqlCacheTablesForChangeNotification表的请求会得到一个结果,启动了sql Server高速缓存禁用功能后,这些执行得非常快。<SPAN style="FONT-SIZE: small"> <SPAN style="COLOR: rgb(0,255); LINE-HEIGHT: 1.5em">为页面添加多个表,如下(用分号隔开):
<SPAN style="COLOR: rgb(153,0); LINE-HEIGHT: 1.5em"><%@ OutputCache Duration="3600" VaryByParam="none" <SPAN style="COLOR: rgb(255,0); LINE-HEIGHT: 1.5em">sqlDependency="Northwind:Employees;Northwind:Customers" %>

猜你在找的MsSQL相关文章