SQL Server 高速缓存依赖分析_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" %>

时间: 2024-08-03 06:49:16

SQL Server 高速缓存依赖分析_MsSql的相关文章

SQL Server 高速缓存依赖分析

一,使数据库支持SQL高速缓存依赖性. 二,使表支持SQL高速缓存依赖性. 三,在ASP.NET应用程序的web.config文件中包含SQL连接字符串. 四,以如下方式利用SQL高速缓存依赖性:      1)在代码中编程创建一个SqlCacheDependency对象.      2)给OutputCache指令添加SqlCacheDependency属性.      3)通过Response.AddCacheDependency给Response对象添加一SqlCacheDependenc

jdbc连接sql server数据库问题分析_MsSql

SQL Server连接中问题还真多.不进行设置还真连接不上,这里小记一下!(部分资料来源于互联网) JDBC连接MySQL出现的问题 (例子里面自带JDBC2005的驱动,在lib文件夹下,右键点击Build Path--->add to build build path 即可) 运行connectionSqlServer2005包下的JavaConnectionSQL类即可! 1. 驱动问题: JDBC2005与JDBC2008一定要对号入座,否则会报错!(本人用的是2008) 2. 服务启

SQL Server 2012使用分析服务多维模式建立简单的分析模型

多维数据集是一种特殊的数据库,按照默认的模式(MOLAP),它把数据仓库里事实表和维度表的数据经过聚合存储在另外一套独立的文件系统中.经过聚合的数据在统计性能上会得到提升,并且可以让用户通过很简单的前端工具,比如Excel来生成很简单的报表. 这里将介绍如何制作一个简单的多维数据集. 此篇使用的版本是SQL Server 2012,对应的Visual Studio Shell是2010,名称也改为SQL Data Tools. 首先,打开SQL Data Tools,点击File->New->

SQL Server备份历史记录分析

问题 在数据库管理员的日常任务中,数据库备份占据了很重要的位置.这个任务一般通过维护计划.定期的SQL Server Agent Jobs或者第三方工具的执行来完成.考虑到备份的重要性,有必要定期地分析这个过程的性能和效率.那么我们要如何才能洞察任何数据备份过程的性能呢? 专家解答 让我们通过一些不同的脚本来看看能够洞察到什么.为了达到这篇文章的目的,我在这个例子中创建了一个叫做BackupReport的数据库.基于测试目的,执行全日志,差异日志和事务日志来列出脚本的值.查看下面的脚本: 脚本

性能测试:自建数据库与RDS性能对比SQL Server案例排查分析

近期经常遇到用户将自建数据库与RDS进行对比,简单的对比结果是自建库比RDS实例查询快.我们这里来看看一个实例,有一家物流公司,刚开始使用RDS SQL Server数据库,发现通过ECS访问RDS实例,执行语句需要60s左右,但是访问ECS本地自建库只需要2-3s.那么RDS是否是真的不如自建数据库呢? 接下来,我们来探讨对比自建库和RDS的正确姿势,如何公平地对比自建库和RDS的性能. 对比自建库和RDS的语句执行性能,下面这些因素必须都考虑到: 1. 可用区和网络链路. 可用区.网络链路的

SQL Server 死锁案例分析

概述 当两个或者多个进程相互阻塞时,形成一个复杂的阻塞链,参与的进程都在等待其他进程放弃其获取到的锁,没有系统的干预,无法解开这个阻塞链,这种情况就是死锁. 有些死锁是意料之内的,可以说是故意为之的. 例如,为了一致性,使用死锁来防止丢失更新. 有一些死锁是意料之外的,由于缺少索引或者事务运行时间较长导致,我们遇到的大部分都是意料之外的死锁.  SQL Server内部有个死锁的检测机制,当发生死锁时,SQL Server根据会话优先级以及工作量进行评估, 选择终止其中一个事务,解开死锁,并且向

SQL Server 2012 安全概述_MsSql

在保密你的服务器和数据,防备当前复杂的攻击,SQL Server有你需要的一切.但在你能有效使用这些安全功能前,你需要理解你面对的威胁和一些基本的安全概念.这篇文章提供了基础,因此你可以对SQL Server里的安全功能充分利用,不用在面对特定威胁,不能保护你数据的功能上浪费时间. 从让人眼花缭乱的客户端使用连接,通过到处分布的网络,尤其是互联网,关系数据库在各种应用程序里广泛使用.这使数据对任何人,在任何地方都可访问.数据库可以保存人类知识的很大部分,包括高度敏感的个人信息和让国际商务工作的关

详解SQL Server中的数据类型_MsSql

前言 前面几篇文章我们讲解了索引有关知识,这一节我们再继续我们下面内容讲解,简短的内容,深入的理解. 数据类型 SQL Server支持两种字符数据类型,一种是常规,另外一种则是Unicode.常规数据类型包括CHAR和VARCHAR,Unicode数据类型包括NCAHR和NVARCHAR.常规字符的每个字符使用1个字节存储,而Unicode数据的每个字符要求2个字节.常规字符列限制为仅仅只针对于英语,而Unicode则是针对于多种语言.两种字符数据类型的文本表示方式也不相同,在表示常规字符文本

win10安装Sql Server 2014图文教程_MsSql

win10系统如何安装Sql Server 2014呢?请看教程,希望对大家能有所帮助. 如图,双击Sql Server 2014安装包 然后点击setup.exe 第三步:点击安装,再点击红线所指的地方 第四步:如何出现如图所示界面,一直点击下一步,直到出现设置角色的步骤,选择第一个Sql server 功能安装,按下一步,出现功能选择,全部选中按下一步. 第五步:出现配置安装选项:A. 配置实例名称与实例ID每台 Windows Server 上最多只能安装一个默认实例.安装程序会根据实例I