SQL Server 2005实现数据库缓存依赖
2009-05-12 21:09:57来源:未知 阅读 ()
使用方法和步骤如下:
step1
检测是否已经启用ServiceBroker,检测方法:
SelectDATABASEpRoPERTYEX('数据库名称','IsBrokerEnabled')
--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来查看监视。
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- sql还原数据库的教程 2020-02-29
- SQL删除ACCESS重复记录的实现方法 2020-02-29
- sql语句怎么实现分离和附加数据库 2020-02-09
- SQLServer数据库的管理方法 2020-01-23
- SqlServer备份数据库的方法 2020-01-18
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash