为.net开发者提供的一份关于存储过程的评论
2006-07-23 11:17:50 来源:WEB开发网核心提示: 性能在查询时,这些缓存中的执行序列可以提高存储过程的性能,为.net开发者提供的一份关于存储过程的评论(2),然而,在最近的两个SQL Server版本中,而不是存储过程,至少在最新的Yukon发布之前,所有的T-SQL语句批处理都被以执行序列的形式保存在缓存中,而不管它是否存在于存储过程
性能
在查询时,这些缓存中的执行序列可以提高存储过程的性能。然而,在最近的两个SQL Server版本中,所有的T-SQL语句批处理都被以执行序列的形式保存在缓存中,而不管它是否存在于存储过程中。因此,在基于此特性上的性能的提高不再是存储过程的卖点。任何采用静态(不经常改变)语法的T-SQL批处理被频繁地提交,以防止它在缓存中的执行序列因为超过内存生命期而消失,这样做同样可以得到很高的性能。注意这里“静态”很 关键,因为即使无关紧要的变化(例如注释的改变)都会导致不与缓存中的执行序列进行匹配。从而也就导致了执行序列的无法重用。
可是,存储过程仍旧有它的优点,利用它可以减少网络的数据传输量。你只需要发送如下的指令:
EXECUTE stored_proc_name
便可以轻松地执行一系列复杂的操作,而不是那些传统的冗长的T-SQL语句。一个设计良好的存储过程可以显著减少客户端与服务器端的往返通讯,甚至可以压缩至一次调用。
另外,使用远程调用(RPC)服务器端的存储过程可以提高执行序列的重用性,从而提高性能。当你使用一个CommandType为StoredProcedure的SqlCommand对象时,存储过程将通过远程调用(RPC)被执行。远程调用排列好参数并调用服务器端的存储过程,它使服务器引擎很容易找到与之匹配的执行序列并方便地提供已经更新的参数值。最后一件需要考虑的事情是,当你准备应用存储过程提高程序的性能时你是否充分发挥了T-SQL的力量。考虑一下你打算怎样操作这些数据。
可维护性与共性提取
- ››开发者眼中的Windows Phone和Android
- ››开发者在App Store上赚的钱比在Android Market上多...
- ››开发者应深入学习的10个Android开源应用项目
- ››Netpas加速 让非电信宽带用户流畅上网
- ››net中fckediter的图片上传时候点击\浏览服务器\出...
- ››开发者眼中的iPhone与Android
- ››Netmsg局域网聊天程序
- ››开发者或想使用的10个Android2.2新特性
- ››NetAirus指控苹果iPhone侵犯其专利
- ››Netflix 在线影视播放程序将登陆 iPhone
- ››Net中各种不同的对象创建方式的速度差异
- ››NetNewsWire 功能简单 界面快速 Reader 浏览器
更多精彩
赞助商链接