您现在的位置:
软界网
>
技术中心
>
数据库
>
SQLServer
> 技术显示
操作系统
|
办公软件
|
实用工具
|
网络管理
|
软件开发
|
WEB开发
|
软件工程
|
数据库
|
设计在线
|
信息安全
|
行业信息化
|
管理信息化
|
移动开发
剖析SQL Server 2005查询通知之基础篇
1900-1-1 0:00:00 网友评论 阅读次数
点此评论
摘要
在本系列文章中,我们将深入探讨如何把.NET 2.0和SQL Server 2005的查询通知特征联合起来,以便通知应用程序何时关键数据发生变化进而达到消除反复查询数据库的目的。
一. 引言
数据库应用程序的典型问题之一是更新陈旧的数据。
设想有一个典型的显示产品及其分类的电子商务网站。一个供应商的产品列表很可能并不经常发生变化,而其分类列表甚至更不会频繁更改。然而,在用户每次浏览该网站时,必须从数据库中反复查询这些列表。这显然是一种典型的低效资源利用,开发者和架构师都在绞尽脑汁想办法以减少这种浪费。
缓冲技术正是“最小化”对这种几乎“停滞”的数据进行重复查询的技术之一。这种数据可以被进行一次性查询并存储在一个缓冲区中,而且应用程序可以从缓存中重复地存取数据。偶尔情况下,才更新缓存以得到新数据。但是,围绕更新缓存的时间调度方面出现了几个问题。该多长时间操作一次呢?例如,你每隔多长时间希望你的产品分类改变一次?每隔几个月一次?每隔两个月刷新一次该缓冲区如何?你知道会发生什么吗?就在你刷新缓存之后,分类被更新,而且在下一次刷新前在两个月的时间里它将保持陈旧。
查询通知,是微软的ADO.NET和SQL Server小组协作开发的新成果。简言之,查询通知允许你缓冲数据并且仅在SQL Server中的数据发生变化时才发出通知。一旦接到通知,你就可以刷新你的缓冲区或者采取你需要的任何措施。
在SQL Server 2005中引入的一种新特征“Service Broker”使得查询通知成为可能。Service Broker把队列机制引入到数据库管理中,它使用一组队列与服务进行通讯,而服务反过来也知道如何往回通讯以调用相应的实体。其实,这些队列和服务都是一些与表、视图和存储过程一样的类对象。尽管完全可以在SQL Server内使用Service Broker,但是ADO.NET知道如何与Service Broker进行通讯以触发这种机制并且从Service Broker中检索回通知。
注意 当SQL Server中的数据发生改变时,查询通知允许你缓冲数据并且通知你。
在.NET一端,存在很多种“钩入”这种功能的方式。ADO.NET 2.0提供了System.Data.SqlClient.SqlDependency和System.Data.Sql.SqlNotificationRequest类。SqlDependency是SqlNotificationRequest的一种高级实现,并且是当使用ADO.NET 2.0时你最有可能使用的类。ASP.NET 2.0也通过System.Web.Caching.SqlCache-Dependency类(它提供了一个针对SqlDependency的包装器)与Service Broker进行通讯,而且这是直接通过在一个ASP.NET页面中使用<%OutputCache>指令以声明方式提供的功能实现的。这允许ASP.NET开发者容易地实现使依赖于SQL Server中的数据中的缓存无效。
二. .NET与Service Broker的通讯
上面这些技术是如何联合到一起来解决“缓冲之谜”的呢?尽管你可以采取很多的措施以允许SQL Server把服务提供给.NET;但是,关键还在于,发送到SQL Server的查询具有一个依附到它们的标志以便告诉SQL Server,除了返回结果集外,SQL Server还应该把该查询(及其请求者)注册到Service Broker。为此,你要创建一个感知该查询的队列和一个依附到该队列的服务,并且知道如何返回到客户端。如果该结果集中的任何一行在数据库中得到更新,那么在相关队列中的项将触发,并且反过来,把一条消息发送到它的服务,然后把一个通知发送回初始化该请求的应用程序。
图1是SQL Server Management Studio的一个快照,它显示了在数据库的Service Broker部分中的队列(Queues)和服务(Services)。
图1.该图显示了.NET的查询通知所使用的Pubs数据库中的缺省队列和服务。
下面是理解这一过程的一些有关重要内容:
· 存在一些规则以指出SQL Server接收哪些类型的查询。
· 一旦SQL Server发送回通知,队列和服务即被删除。这意味着,你仅能在每次请求中得到一个通知。一个典型的应用程序会重新查询数据库并且,在同时,请求在Service Broker中创建一种新的依赖性。
· 返回到应用程序的信息也不过是“something changed”。该应用程序并不被通知改变了什么(请参考本文中的SQLNotificationEventArgs一节了解更多的信息)。
· 尽管依赖性被绑定到从查询中返回的行上;但是,它并不被查询中的单个列加以过滤。如果你有一个查询—它返回你的组织的基本成员姓名以及那些单个改变之一的地址(但是,其姓名并不改变),这将触发一个改变通知。很希望,这种特殊行为在未来的版本中会有所改变。
· 通知被返回,通过一个专门针对这一目的建立的SqlConnection。这个连接并不加入连接池中。
三. 何时使用查询通知
查询通知是针对于并不经常改变的数据而设计的。最好把它应用于服务器端的应用程序(例如ASP.NET或remoting)而不是客户端应用程序(例如Windows表单应用程序)。记住,每一个通知请求都要在SQL Server中注册。如果你拥有大量的都有通知请求的客户端应用程序,那么这可能会导致你的服务器产生资源问题。微软推荐,对于客户端应用程序,你应该限制查询通知使用为不多于十个并行用户。
对于大规模应用程序来说,查询通知可能是一种强有力的帮助,而不用简单地添加越来越多的服务器以满足要求。设想,有一家大型的为成千上百万用户提供在线软件更新服务的软件公司。不是使每一个用户的更新操作都触发服务器上的另一个查询来确定需要哪些组件,而是能够缓冲查询结果并且可以直接从该缓存中服务匹配的查询。
注意:对于客户端应用程序来说,应该限制你的查询通知使用—不多于十个并发用户。
对于较小规模的情况而言,下拉式列表框是另一种典型的数据集;此时该数据集更新的次数并不如请求的次数多。产品列表、州列表、国家列表、供应商、销售人,甚至更多不太需要频繁改变的信息正是使用通知的较好候选。
共3页。
1
2
3
8
:
相关搜索:
相关文章及软件
·
调查表明微软SQL Server是最安全数据库
·
深入浅出SQL教程之嵌套SELECT语句
·
深入浅出SQL教程之Group by和Having
·
深入浅出SQL系列教程之SQL语言简介
·
SQL Server连接失败错误分析与排除
·
探讨SQL Server 2005.NET CLR编程
热点评论
关注此文读者还看过
关注此文读者还看过
·
病毒伪装RM文件传播 播放软件成帮凶
·
以色列破获间谍案 竞标遇挫原是木马捣鬼
·
瑞星31日病毒播报:删除文件的两种木马
·
“传奇便宜外挂”含逻辑炸弹 恶意删除文件
·
病毒播报:大量删除系统文件的外挂程序
·
瑞星5月30日计算机病毒播报
·
金山5月27日计算机病毒播报
·
瑞星5月27日病毒播报
·
揭密:美军超级黑客特种部队
热门关注
特别推荐
1
快车(FlashGet)
-1次/周
2
迅雷5
56540次/周
3
迷你快车(FlashGet Mini)
109次/周
4
迷你快车(FlashGet Mini)
75次/周
5
网际快车(FlashGet)
82次/周
6
网际快车(FlashGet)
49次/周
7
网际快车 FlashGet(Jetcar)
446次/周
8
比特精灵(BitSpirit)
120次/周
9
超级旋风
3709次/周
10
网吧版迅雷
314次/周
1
迅雷5(Thunder)
57298次/周
2
电雷超级下载
18586次/周
3
Web迅雷
11077次/周
4
腾讯超级旋风
4136次/周
5
电驴(eMule) VeryCD
3747次/周
6
屁屁狗PPGou
2830次/周
7
快车(FlashGet)
2755次/周
8
中国驴 eMule
2197次/周
9
BitComet(比特彗星)
1589次/周
10
UUSee MP4下载中心
843次/周
装机推荐
聊天
腾讯QQ
MSN Messenger
Skype语音聊天
移动飞信Fetion
下载
迅雷5
网际快车FlashGet
屁屁狗PPgou
eMule verycd(电驴)
影音
暴风影音
RealPlayer
千千静听
酷狗KuGoo
系统
瑞星杀毒2008
WinRAR
Windows优化大师
Vista优化大师
中文
搜狗拼音输入法
谷歌拼音输入法
万能五笔输入法
紫光华宇拼音输入法
网络
傲游[Maxthon]浏览器
Firefox(火狐浏览器)
Foxmail
POCO 2007
系统
Adobe Photoshop
光影魔术手
Q宠保姆
酷我音乐盒
网友关注
软件下载
娱乐下载
驱动下载
1
酷狗音乐2008
1762500次/周
2
Adobe Photoshop CS 2
750150次/周
3
金山词霸
138493次/周
4
迅雷5(Thunder)
57298次/周
5
K8录音软件
51750次/周
6
QQ音乐播放器
38422次/周
7
Office 2007
31032次/周
8
Windows XP 安全更新程序 (KB891711)
30700次/周
9
POCO 2007
25070次/周
10
Samsung PC Studio 3.0
23692次/周
1
MM洗澡自拍
27617次/周
2
迈克尔杰克逊世纪最强舞蹈精华集合
26625次/周
3
2006NBA东西部全明星对抗赛下半场
18196次/周
4
阿拉伯经典肚皮舞视频
12628次/周
5
CS搞笑3GP手机视频
11882次/周
6
恶搞视频《葵花宝典真人版》
11724次/周
7
地下车库的艳遇
10756次/周
8
美国中学的性与爱
10351次/周
9
3GP手机视频 猫和老鼠东北方言版
9854次/周
10
街头篮球中最强的运球高手视频集锦
7699次/周
1
万能摄像头驱动
29261次/周
2
最新万能摄像头驱动 For Windows
26893次/周
3
Microsoft微软DirectX 9.0c最新apr2007官方正式多语言版
13157次/周
4
nVIDIA nForce 3系列芯片组最新ForceWare驱动
10445次/周
5
ATi冶天Radeon系列显卡催化剂驱动
7087次/周
6
方正文杰激光打印A306/E306/A280/A280E A5000 /A406/A406+驱动
5773次/周
7
万能声卡驱动 适用于VIA芯片声卡
5372次/周
8
IBM ThinkPad笔记本PC-Doctor测试软件5.00.4329.01版
3951次/周
9
hayden海顿全系列摄像头驱动程序
3628次/周
10
万能网卡驱动 适用于所有网卡
3320次/周
近期热点
风行网络电影
Fetion飞信
《蜀山OL》客户端
最新万能摄像头驱动
文章排行
本周
本月
最近更新
1
2
3
4
5
6
7
8
9
10
Vista系统电源管理的几个配置方案
浏览器速度测试:Firefox 3.0 RC1遥遥领先
Photoshop Express更新 增加多种新功能
超省!两元钱用普通DVD光盘制作高清“蓝光碟”
将Word的“页面设置”请进右键菜单
微软MSN发起“彩虹签名行动”
自己制作黑白色调的MSN头像
FireFox 3.1版本将在年底出现 部分功能透露
Symantec报告:大企业仍然不欢迎Vista
完美网络安全还需要防什么?
1
2
3
4
5
6
7
8
9
10
黑客仿冒腾讯建立诈骗网页 丧尽天良利用震灾敛财
谷歌启动地震形势地图
抢先体验QQ2009 全新亮点功能大放送
手机QQ2008 Beta1评测:视觉随心 沟通无限
品牌机预装Linux系统完美胜任五大日常应用
关注PPLive“24小时汶川地震抗灾救险视频直播”
WPS Office 2007个人版更新至6.3.0.1606
Office 2008 for Mac SP1发布 增强安全稳定性
Skype启动免费一小时四川省抗震热线固话通话
腾讯号召玩家:少玩两小时捐款一元钱
1
2
3
4
5
6
7
8
9
10
Photoshop渲染类滤镜特效:彩色艺术玻璃
Photoshop渲染类滤镜做特效:五彩绚光
Photoshop渲染类滤镜做特效:放射炫光
“磁碟机”病毒专杀工具对比评测
Photoshop渲染类滤镜做特效:火焰
Windows XP SP3已有RTM版 29号开始提供下载
Photoshop渲染类滤镜做特效——爆炸
办公文档编辑软件排版通用技巧
洛可可工业设计公司的创意流水线
Photoshop滤镜制作彩虹色炫光水平行线特效
1
不再烦恼!五招巧防QQ密码被盗
2
十大最让人恼火的软件
3
Word文档打印小技巧
4
江民25日病毒播报:ARP魔鬼冒充局域网网关
5
Vector Magic:图形矢量化的好工具
6
未来的Ubuntu登录界面预览
7
支持GPU、物理加速 Photoshop CS4十一发布
8
Windows 7将支持虚拟磁盘技术
9
赛门铁克:将着重改善诺顿系列软件的性能
10
江民KV2008如何发送技术支持报告
热点推荐
珊瑚虫QQ侵权事件追踪专题报道
天极设计软件视频教程全新亮相
Word快捷键手册 快速操作Word如有神助
陈冠希事件的启示 明星电脑安全防范手册
关于我们
|
网站律师
|
天极服务
|
投稿指南
|
电子杂志
|
RSS订阅
|
加入我们
|
网站地图
Copyright (C) 1999-2008 Chinabyte.com, All Rights Reserved 版权所有 天极网络
商务联系、网站内容、合作建议:010-82657868
版权声明
在线提交意见反馈
Powered by 天极内容管理平台CMS4i
天极传媒:
天极网
|
比特网
|
IT专家网
|
IT商网
|
52PK游戏网
|
IT分众
-
网站地图