扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:ChinaITLab 来源:中国IT实验室 2007年9月12日
关键字: 开发 SQL Server 2005 数据库 SQL Server
随着Microsoft SQL Server 2005 Beta 2的发布,数据库开发的方式正在改变中。作为一个数据库开发人员,现在你可以更好的把工作关注在功能、对本机格式的数据的访问(如XML)、以及利用强大的数据库服务器创建更复杂的系统上。数据库开发工作正前所未有的越来越集成,你所需要的所有工具都触手可及。
.NET Framework集成
随着Microsoft SQL Server 2005 Beta 2的发布,数据库编程人员现在可以充分利用Microsoft .NET Framework 类库和现代编程语言来开发数据库应用。 通过集成的CLR,你可以用.NET Framework language 里的Visual Basic .NET 和C#中面向对象的结构、结构化的错误处理、数组、命名空间和类来编写存储过程、函数和触发器。此外,.NET Framework所提供的几千个类和方法也扩展了服务器功能,使你能够更容易的在服务器端使用。许多之前我们用T-SQL难以实现的任务现在可以更容易的用托管代码实现。同时,系统还新增了两个数据库对象类型:聚合和用户自定义类型。你现在能够更好的利用已掌握的知识和技能编写in-process 代码。总之,SQL Server 2005 Beta 2 能够使你的数据库服务器更方便地在后台执行适当的计算和操作。
SQL Server 和 CLR 的集成主要提供了如下好处:
1.增强的编程模型:.NET Framework 兼容的编程语言在很多方面要比T-SQL更强大,它提供给SQL 开发人员之前没有的架构和功能。
2.增强的安全性: 在CLR环境下运行的托管代码被数据库引擎所控制,这使得.NET Framework 数据库对象能够比以前版本的SQL Server中的扩展存储过程运行的更安全,并具备更好的安全性。
3.用户自定义类型和聚合: 借助宿主CLR,这两个新的数据库对象扩展了SQL Server 的存储和查询能力。
4.通用开发环境: 数据库开发被集成到Microsoft Visual Studio 2005 开发环境中。 用来开发中间层和客户层.NET Framework组件和服务的工具同样可以被用来开发和调试数据库对象和脚本。
5.性能和可伸缩性: 因为托管代码被编译为本机代码得以优先执行,在某些场合性能可以得到显著的提升。
6.利用CLR集成,你可以用Visual Basic .NET 和 C#这样的语言写出具有更复杂逻辑的代码和更适用于计算型任务的代码。而且,Visual Basic .NET 和 C# 还提供了诸如封装、继承、多态这样的面向对象的功能。你现在可以更容易的把代码和类、命名空间组织在一起,这意味着你更容易组织和维护在工作中产生的大量代码。这种从逻辑上和物理上把代码组织到程序集和命名空间中的功能非常有用,它将使你能够更好的在一个大型数据库实现项目中发现和关联不同的代码块。
托管代码在处理运算和管理复杂执行逻辑上比T-SQL更有效,并且提供了对字符串处理、正则表达式之类功能的额外支持。此外,由于现在可以利用.NET Framework类库的功能,你可以更容易的从存储过程、触发器、用户定义函数中访问几千个内置的类和例程(routines)。通过托管存储过程、函数、触发器、聚合,可以更容易的实现字符串处理、数学函数、日期操作、系统自由访问、高级加密算法、文件访问、图像处理、XML数据操作等功能。
托管代码的一个主要好处就是类型安全。在托管代码执行前,CLR将执行一些检查,通过一个被称之为“验证”的处理过程来保证所执行的代码是安全的。例如,会检查代码以确保不会读未写的内存地址。
在Transact-SQL 和 托管代码之间的选择
当编写存储过程、触发器、用户自定义函数时,你现在要决定是使用传统的Transact-SQL 还是.NET Framework兼容的编程语言,如Visual Basic .NET or C#来编写它们。这个问题的答案依赖于使用的场合,在某些情形下,你会使用Transact-SQL,而另外一些情形下,你将使用托管代码。
Transact-SQL 更适合代码主要是进行数据访问、没有逻辑或逻辑简单的场合。托管代码更适合密集计算和复杂逻辑的场合,或者是那些你想利用.NET Framework 类库的场合。
代码放置也很重要。你可以把Transact-SQL 和 托管代码都放在服务器上运行,代码和数据的紧密结合使你能够充分利用服务器的处理能力。而且因为它减少了数据层和中间层之间的流量,所以这非常有益。特别是对I/O密集的系统,可能会有显著的好处。CLR 函数也可以利用到SQL Server 查询处理器的并行和优化功能。另一方面,你可能不希望把密集计算的任务放在数据库服务器上,现在的大多数客户端计算机都很强大,你可能希望把尽可能多的代码放到客户端来利用其处理能力。这没有一成不变的答案。
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者