微软整合SQL Server 2005与Visual Studio 2005倒不是顶新鲜的创举,Oracle早在2004年年底即率先针对Visual Studio 2003,推出Oracle Developer Tools for Visual Studio .NET,用意在提供.NET平台的Oracle用户,整合于Visual Studio的数据库设计与管理工具,甚至可利用.NET开发Stored Procedure(预存程序)。相信Oracle在不久的将来,也会针对.NET Framework 2.0推出更新的开发版本。
Stored Procedure效率佳,但与厂商紧密捆绑
站在程序开发者的立场,数据库与商业逻辑分开,数据库纯粹储存数据,程序开发交由应用程序处理比较单纯;但从DBA的角度出发,系统归系统,数据的处理由数据库负责比较好。虽然两者看法分岐,不过,Stored Procedure贴近数据库引擎,执行效能较佳,况且数据确实有预先处理的需求,透过程序远程处理不仅耗时,而且有网络断线造成执行失败的风险,因此,实务上Stored Procedure有存在的必要性。
Stored Procedure有以下的好处:
1.模块化的程序撰写:只需建立一次Stored Procedure,储存在数据库中,就可以让不同的程序呼叫。
2.执行效率佳:如果需要大量或反复执行的数据处理,Stored Procedure的执行速度会比T-SQL程序代码的批处理快。因为 Stored Procedure 是在建立的时候进行剖析和最佳化,所以执行一次以后存在内存中。而程序代码则是每次执行时都要反复地从客户端传到服务器。
3.减少网络流量:即使是好几百行T-SQL程序代码的作业,也只要透过一个指令就可以执行Stored Procedure中的程序代码,而不必在网络上传送几百行程序代码。
虽然微软的T-SQL或Oracle的PL/SQL,都兼容于ANSI-SQL,但毕竟不是标准,两者都是厂商专属的数据库程序语言,所以,只要选择撰写Stored Procedure,就是紧密捆绑的开始。不过,除非有不堪使用的重大理由,否则企业选定应用程序搭配的数据库,少有更换的情况,所以效能与捆绑的衡量,是视应用而定。
以T-SQL或.NET开发Stored Procedure各有利弊
单就SQL Server而言,Visual Studio 2005与SQL Server 2005整合,明显的好处在于开发数据库程序,例如Stored Procedure或Trigger可以纳管。过去,Stored Procedure必须部署到数据库「执行看看」,才知道有没有问题,而且Stored Procedure就像一般程序,档案可能被别人修改或不小心被覆盖,因此有管理的需要。透过Visual Studio的控管,对于SQL Server的管理确有正面的效果。
如果企业采用T-SQL撰写Stored Procedure,SQL Server 2005已附赠一套精简版的Visual Studio,DBA不再需要使用阳春的文字编辑器撰写Stored Procedure,可享有开发、测试及版本管理的好处。
若搭配Visual Studio 2005,可使用C#和Visual Basic撰写Stored Procedure。事实上,利用通用性程序语言撰写Stored Procedure,微软不是原创,Java的SQLJ也是对等的设计。
SQL Server 2005的核心已由.NET Framework 2.0改写,因此,以Visual Basic或C#开发的Stored Procedure好处包括:
1.编译成为DLL(.NET Managed code Assembly)的Stored Procedure档案,执行在原生的.NET Framework 2.0平台,预估效能会比T-SQL好,尤其是大量循环和字符串处理的应用。
2.由于T-SQL是特定用途的程序语言,无法表达复杂的逻辑,所以即使是简单的字符串处理或数字计算,可能就要写数十行的程序表达;改由通用性用途的C#或Visual Basic可以大幅缩短程序的长度,也就增加程序的可维护性。
3.相较于T-SQL是SQL Server专属语言,.NET是ISO标准。
缺点一言以蔽之,却很关键:企业可能必须有长期保存Visual Studio各种版本的心理准备。
长远看来,数据库与开发工具的生命周期大不相同,数据库首重稳定与安全,升级的频率不像开发工具那么赶流行,未来可能.NET Framework和Visual Studio都更新了好几个版本,企业的SQL Server还在2005版,而Visual Studio不像JBuilder一样有切换JDK版本的功能。因此,DBA的计算机不管改朝换代了几次,都必须装有Visual Studio 2005,甚至随数据库版本的多元化,必须装有Visual Studio不同版本,而且光盘也不能丢掉。那么情况可能就像现在计算机必须安装着VB 6甚至VB 3一样诡异。至于选T-SQL或.NET的权衡,可能又需视Stored Procedure的应用层面来决定。
升级SQL Server 2005才能享有整合的好处
数据库的工具整合于开发环境,除了便利性,更重要的是数据库的程序开发,终于有了管理工具。过去Stored Procedure「丢上去Try看看」的作法,现在有了测试和版本控管的机制,由此看来,两者确实有相互「抬轿」、彼此「绑桩」的效果。
不过,Stored Procedure到底是延用T-SQL,还是改采功能强大、可以处理复杂逻辑的Visual Basic和C#撰写,就有很多层。
(责任编辑:铭铭 mingming_ky@126.com TEL:(010)68476606)
|
|||
| · CISSP认证成长之路 · 51CTO主编推荐经典专题 · 51CTO国庆充电专题之好.. · 网络技术经典基础教程 · AMD Phenom三核处理器.. · 国际文档格式标准开战 · 2007年互联网大会 · 我是黑客我怕谁——讲.. |
· ARP攻击防范与解决方案 · Solaris 10 配置管理 · Solaris基础知识入门 · RIP路由协议专栏 · MPLS路由协议专栏 · OSPF路由协议专栏 · 思科路由器产品 · 华为路由器产品 |
||
|
|||
| · Java基础教程 · VPN技术 · ARP攻击防范与解决方案 · SQL Server 2005全解 · SOA 面向服务架构 · SQL Server 2005全解 · Java编程开发手册 · 三层交换技术专题 |
· SQL Server入门到精通 · Windows Server 2003企.. · Windows远程桌面应用 · C#技术开发指南 · VPN技术 · Solaris 10 配置管理 · C#技术开发指南 · Windows操作系统安装 |
||
|
|||
| · ARP攻击防范与解决方案 · VPN技术 · SQL Server 2005全解 · Java基础教程 · SQL Server入门到精通 · SQL Server 2005全解 · SOA 面向服务架构 · Java编程开发手册 |
· C#技术开发指南 · 三层交换技术专题 · C#技术开发指南 · Windows远程桌面应用 · Windows Server 2003企.. · 邮件服务器专题 · wimax技术与趋势 · Windows操作系统安装 |
||
| ·DB2 Viper快速入门 ·DB2 9数据库的镜像分割与.. |
·将XML应用程序从DB2 8.x.. ·DB2 9中的pureXML:如何.. |
| ·服务器中的“傻瓜机”在.. ·盖茨也喜欢登录Youtube看.. |
· · |
| ·拯救系统管理员 ·美国选民:我为什么选布什 |
·VMware公司中文命名挑战赛 ·我们真缺乏创新吗? |
| ·J0ker的CISSP之路:复习-.. ·J0ker的CISSP之路:复习-I.. |
·9月第3周安全回顾 内网安.. ·教你几招识别和防御Web网.. |
| · NGN:下一代网络 · 网络访问中断大排查 · FTTx光纤接入 |
· 教你使用Anti ARP Sniff.. · 网络嗅探教程:使用Snif.. · 常见病毒手工清除方法大.. |
| · C++是垃圾语言?! · 2007年IT界七大抄袭事件 · Java实用开发全集 |
· 解析Ajax开发框架 走进A.. · 基于Google Maps与Ajax.. · 基于Google Maps与Ajax.. |
| · 热门 IT 培训认证官方资.. · Ubuntu 中文开源频道 · Solaris基础知识入门 |
· 费力不讨好 数据中心主.. · AMD Phenom三核处理器解.. · 51CTO主编推荐经典专题 |
| · 甲骨文Oracle 11g正式发.. · Oracle数据库开发之PL/S.. · Oracle数据库开发基础教.. |
· 存储2006,一个并购的大.. · IDC宣布浪潮蝉联存储市.. · 双机热备技术 |