代码驿站移动版
频道导航
HTML/Xhtml
CSS
JavaScript
HTML5
PHP教程
ASP.NET
正则表达式
AJAX
ThinkPHP
Yii
MySQL
MariaDB
Oracle
MongoDB
Redis
DedeCMS
PHPCMS
帝国CMS
WordPress
Discuz
其它CMS
Zend Studio
Sublime
Notepad
Dreamweaver
Windows
Linux
Nginx
Apache
IIS
CentOS
Ubuntu
Debian
网站优化
工具资源
PHP源码
ASP.NET源码
其它源码
图标素材
按钮素材
字体素材
DedeCMS模板
帝国CMS模板
PHPCMS模板
WordPress模板
Discuz!模板
单页模板
开发软件下载
服务器软件下载
广告投放
联系我们
版权申明
软件编程
网页前端
移动开发
数据库
服务器
脚本语言
PHP代码
JAVA代码
Python代码
Android代码
当前位置:
主页
>
数据库
>
MsSql
>
SQL Server 高速缓存依赖分析
时间:2021-04-21 09:38:01 | 栏目:
MsSql
| 点击:次
一,使数据库支持SQL高速缓存依赖性。
二,使表支持SQL高速缓存依赖性。
三,在ASP.NET应用程序的web.config文件中包含SQL连接字符串。
四,以如下方式利用SQL高速缓存依赖性:
1)在代码中编程创建一个SqlCacheDependency对象。
2)给OutputCache指令添加SqlCacheDependency属性。
3)通过Response.AddCacheDependency给Response对象添加一SqlCacheDependency实例。
开启高速缓存依赖性的参数简要说明
-d <database>
用于SQL高速缓存依赖性的数据库名。数据库可以使用连接字符串和-c选项指定
(必选)
-ed
允许数据库启用SQL高速缓存依赖性。
-dd
禁止数据库启用SQL高速缓存依赖性。
-et
允许表启用SQL高速缓存依赖性。需要-t选项。
-dt
禁止表启用SQL高速缓存依赖性。需要 -t 选项。
-t <table>
支持或禁止SQL高速缓存依赖性的表名。需要 -et 或 -dt 选项。
-lt
列出所有启用SQL高速缓存依赖性的表。
在SQL Server
2000
中使用高速缓存禁用功能(在2005中也可以进行如下设置)
要在SQL 2000中使用高速缓存禁用功能,必须执行如下两步:
第一步是使相应的数据库支持该功能。
第二步是使要使用的表支持该功能。
例:
aspnet_regsql -S localhost -U sa -P sa -d Northwind -ed
注:
将本机上的Northwind数据库开启高速缓存依赖功能。
aspnet_regsql -S localhost -U sa -P sa -d Northwind -dd
注:
禁用本机上的Northwind数据库的高速缓存依赖功能。使用次命令后,数据库中的所有表的高速缓存禁用功能都自动关闭,AspNet_SqlCacheTablesForChangeNotification表也会自动删除。
开启表的高速缓存依赖功能。
例:
aspnet_regsql -S localhost -U sa -P sa -d Northwind -t Products -et
注:
为Northwind数据库中的Products表开启高速缓存依赖功能。
aspnet_regsql -S localhost -U sa -P sa -d Northwind -t Products -dt
注:
为 Northwind数据库中的Products表关闭高速缓存依赖功能。通过这个方法可以为一个数据库中的一个或多个表开启高速缓存依赖功能。为数据库和表开启高速缓存依赖功能后,可以发现Northwind数据库中添加了一个 AspNet_SqlCacheTablesForChangeNotification表,表示配置成功了。
aspnet_regsql -S localhost -U sa -P sa -d Northwind -lt
使用-lt参数可以查看该数据库中哪些表开启了高速缓存依赖功能。如果数据库关闭了高速缓存依赖或者没有启用高速缓存依赖功能,使用此命令将会得到错误提示。
关于SQL 2005的高速缓存禁用功能
SQL Server 2005支持高速缓存的编程和声明技术。在OupputCache指令中使用CommandNotification字符串就可以给页面建立基于通知的高速缓存。可以编程指定SQL高速缓存选项,或声明该选项,但不能同时使用这两种方法。SQL2005的缓存依赖无需web.config的配置,也不用为数据库和表开启缓存依赖功能,由于05内置了一个通知传递服务,该服务可以实现检测数据的更改、实现更改通知传递等功能,因此不需要不断轮询数据库来检测数据更新了。
注:虽然05中的缓存依赖使用很简单,但目前我还没有找到更多的相关资料,还没有亲自进行测试,主要原因还没搞清楚怎么才能开启Broker服务,以后有时间在进行测试吧。
配置ASP.NET应用程序
使用数据库和其中的几个表支持SQL Server高速缓存禁用功能后,就要为SQL Server高速缓存禁用功能配置应用程序。
要配置应用程序,以使用SQL Server高速缓存禁用功能,首先应修改web.config文件。在此文件中,指定要使用的数据库,并让ASP.NET连接它。
如:
<connectionStrings>
<add
name="NorthwindConnectionString"
connectionString="Data Source=.;Initial Catalog=Northwind;User ID=sa;Password=sa"
providerName="System.Data.SqlClient" />
</connectionStrings>
<system.web>
<caching>
<sqlCacheDependency enabled="true" pollTime="500">
<databases>
<clear/>
<add name="Northwind" connectionStringName ="NorthwindConnectionString" pollTime="500"/>
</databases>
</sqlCacheDependency>
</caching>
</system.web>
注:首先使用web.config文件中的<connectionStrings>元素,建立了与数据库的连接字符串。然后通过<caching>元素为SQL Server高速缓存功能进行配置。要是使用SQL Server高速缓存依赖性,所以必须使用<sqlCacheDependency enabled="true">节点,并启用该功能。在<databases>节点中引用数据库。
<add>元素中的属性说明:
name
:为SQL Server数据库提供一个标识符。
connectionStringName
:指定连接的名称。
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高速缓存禁用功能后,这些执行得非常快。
为页面添加多个表,如下(用分号隔开):
<%@ OutputCache Duration="3600" VaryByParam="none"
SqlDependency="Northwind:Employees;Northwind:Customers"
%>
您可能感兴趣的文章:
mssql关于一个表格结构的另外一种显示(表达意思不变)
SQL进行排序、分组、统计的10个新技巧分享
Sql学习第三天――SQL 关于with ties介绍
Microsoft SQL Server 2012 数据库安装图解教程
SQL Server 2008 R2登录失败的解决方法
相关文章
01-12
SQLserver中cube:多维数据集实例详解
11-05
sqlserver常用命令行操作(启动、停止、暂停)
10-05
SqlServer Mysql数据库修改自增列的值及相应问题的解决方案
12-03
T-SQL 查询语句的执行顺序解析
10-03
SQL数据库存储过程示例解析
JQuery
VUE
AngularJS
MSSql
MySQL
MongoDB
Redis
Linux
Tomcat
Nginx
网站首页
广告投放
联系我们
版权申明
联系站长