SQL SERVER 2005内置支持SQL数据缓存依赖,内置通知传递服务,能够提供更小粒度的数据更改监测,使用和配置简单。

运用办法和立刻如下:

SQL Server 2005完成数据库缓存依靠  微软 2005 缓存依赖 第1张

step1

检测是否现已启用ServiceBroker,检测办法:

%&&&&&%0

--1表明现已启用0表明没有启用

step2

假如ServiceBroker没有启用,运用下面句子启用:

ALTERDATABASE数据库称号SETENABLE_BROKER;

step3

在完成根据服务的SQL数据缓存依靠过程中,需求显式调用SqlDependency.Start来发动承受依靠项更改告诉的侦听器。

SqlDependency.Start(connectionString);//引荐将这段代码加到Global.asax的Application_Start办法中

SqlDependency.Stop(connectionString);//用于封闭,可加在Global.asax的Application_End办法中

step4

该立刻别离有两种不同的做法。该阶段有必要留意立刻。

办法A:树立衔接光辉,再创立一个SqlCommand实例,创立SqlCacheDependency实例,在这步之后再调用Command光辉来获取数据(这个鸡飞蛋打很重要)。之后调用Cache的Insert句子树立一个依靠于一个详细查询数据集的Cache项。

SqlConnectionconn=newSqlConnection(strConnection);

SqlCommandcommand=newSqlCommand(strCommandText,conn);

SqlCacheDependencydependency=newSqlCacheDependency(command);

//注册办法到托付,该托付是

CacheItemRemovedCallbackonRemove=newCacheItemRemovedCallback(RemovedCallback);

//新增或环视一条缓存记载

Cache.Insert(strCacheKey,objAppCache,dependency,absoluteExpiration,

slidingExpiration,CacheItemPriority.Default,onRemove);

办法B:树立衔接光辉,再创立一个SqlCommand实例,***创立SqlDependency实例。界说SqlDependency的托付OnChange,当数据产生改动时做出相应的处理(比方铲除Cache)。

SqlConnectionconn=newSqlConnection(strConnection);

SqlCommandcommand=newSqlCommand(strCommandText,conn);

SqlCacheDependencydependency=newSqlCacheDependency(command);

dependency.OnChange+=newOnChangeEventHandler(Dependency_OnChange);

留意事项:

不知道是不是还存在BUG,我在项目开发中遇到一些古怪的现象。相同的代码,在有的机器上闻风丧胆则能捕捉到改动,有的则彻底没反应;也有时会呈现Cache刚树立就重复产生依靠改动的事情。偶然Cache还会数据产生改动却不引发事情。

但从终究项目施行的状况看,好像都只是某些机器环境形成的不确认要素?这个无法确认。不过最少数据库端是否正常启用,能够经过SQLServerProfiler来检查监督。

【修改引荐】

  1. SQL Server 2008深度使用
  2. 浅谈装备SQL Server长途备份的办法
  3. SQL Server快速获取表的记载总数
转载请说明出处
知优网 » SQL Server 2005完成数据库缓存依靠

发表评论

您需要后才能发表评论