>  기사  >  데이터 베이스  >  Sql Server 2005/2008 SqlCacheDependency查询通知的使用总结

Sql Server 2005/2008 SqlCacheDependency查询通知的使用总结

WBOY
WBOY원래의
2016-06-07 15:03:411164검색

Sql server 7.0/2000下 SqlCacheDependency 使用 轮询的方式进行缓存失效检查, 虽然ms说对服务器压力不大, 但还是有一些的, 而且对于不常改动的混存内容无休止的轮询感觉有点浪费, 不很经济. Sql server 2005/2008下增加 使用 查询 通知 方式进行缓存失效检

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.确定数据库连接字符串.

您可以在web.config里增加一个数据库连接字符串.

  <connectionstrings><br>    <add></add>    providerName="System.Data.sqlClient"/><br>  </connectionstrings><br>  <system.web><br>  </system.web>

1 2  下一页

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.