【缓存】Sql Server 2005/2008 SqlCacheDependency查询通知的使用总结
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了【缓存】Sql Server 2005/2008 SqlCacheDependency查询通知的使用总结,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含5328字,纯文字阅读大概需要8分钟。
内容图文
Sql server 7.0/2000下 SqlCacheDependency使用轮询的方式进行缓存失效检查, 虽然ms说对服务器压力不大, 但还是有一些的, 而且对于不常改动的混存内容无休止的轮询感觉有点浪费, 不很经济.
Sql server 2005/2008下增加使用查询通知方式进行缓存失效检查, 它通过Sql Server内部的消息队列进行异步通知, 这样就大大减轻了服务器的压力, 实现的很经济, 下面就是具体的步骤:
1.检测是否已经启用Service Broker
Select DATABASEpRoPERTYEX(‘数据库名称‘,‘IsBrokerEnabled‘) -- 1 表示已经启用 0 表示没有启用
2.启用Service Broker
ALTER DATABASE 数据库名称 SET ENABLE_BROKER;
注意:如果执行此语句处于假死状态,请重启(restart)数据库,然后什么都别做, 先执行上面启用Service Broker这个语句就行了!
3.给您的数据库访问帐号授予权限
GRANT SUBSCRIBE QUERY NOTIFICATIONS TO test
注意:这一步非常重要, 如果没有权限, 数据库改变的通知将无法接收, cache永远都不会被刷新,我开始是用的sa帐号,死活都不刷新,花了我两天时间调试这个问题, 还是无法给sa授此权限(ms禁止), 所以,换个数据库访问帐号即可.
4.检查是否有以前的缓存错误
-
USE [master]
-
GO
-
ALTER DATABASE Northwind SET SINGLE_USER WITH ROLLBACK IMMEDIATE
-
GO
-
ALTER DATABASE Northwind SET SINGLE_USER
-
GO
-
ALTER DATABASE Northwind SET ENABLE_BROKER
-
GO
-
ALTER DATABASE Northwind SET MULTI_USER
-
GO
5、启动SqlDependency监听.
在Global.ascx里的Application_Start和Application_End里增加如下代码:
-
void Application_Start(object sender, EventArgs e)
-
{
-
string connString2 = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["NorthwindConnectionString1"].ConnectionString;
-
System.Data.SqlClient.SqlDependency.Start(connString2);
-
}
-
-
void Application_End(object sender, EventArgs e)
-
{
-
string connString2 = System.Web.Configuration.WebConfigurationManager.ConnectionStrings["NorthwindConnectionString1"].ConnectionString;
-
System.Data.SqlClient.SqlDependency.Stop(connString2);
-
}
-
6、主体程序
webfrom1: 单表缓存
webfrom2: LINQ TO SQL 缓存
webfrom3: LINQ TO SQL 多表缓存
原文:http://www.cnblogs.com/jx270/p/4212266.html
内容总结
以上是互联网集市为您收集整理的【缓存】Sql Server 2005/2008 SqlCacheDependency查询通知的使用总结全部内容,希望文章能够帮你解决【缓存】Sql Server 2005/2008 SqlCacheDependency查询通知的使用总结所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。