
集成模型的含意
SQL Server 2005集成.NET运行库时采用的“进程内”模型与“进程外”模型相比有一些非常明显的优势。首先,将CLR集成在进程内部使得SQL Server能以不同的方式控制CLR的运行。内存治理、垃圾收集器、线程支持的核心功能将受到SQL Server主机的控制,而不是采用.NET的默认设置和操作。这一点非常重要,因为SQL Server数据库引擎能更好地从整体的角度来考察系统需求,从而使得它能根据实际情况优化内存和线程的治理。最终,以“进程内”模型集成CLR的SQL Server 2005能创建得到更加健壮和有更好伸缩性的解决方案。
举个例子,考虑一个负担沉重的数据库实例,要响应许多并发的请求,这一情况已经持续了很长一段时间。SQL Server能自动和智能地在数据存储和程序逻辑(例如,.NET存储过程)之间平衡内存的分配。当系统的负担有了一些性质上的变化——例如,相对较多的请求利用了较多的程序逻辑——SQL Server会再次自动地进行调整。这样,系统的性能会根据满足实际需求的伸缩性和可靠性进行不断的优化。因为DB2 UDB v8.2采用“进程外”的模型集成.NET运行库,所以DB2不能提供这种类型的机器资源动态平衡和性能优化。
SQL Server 2005是通过使用CLR 主机API来实现动态优化的,这些API只在.NET框架2.0版中存在,而在.NET框架以前的版本里是没有的。必然的结果,SQL Server 2005需要集成.NET框架2.0版而DB2集成的是.NET框架1.1版,集成的程度自然较低。
.NET 2.0与.NET 1.1的差别
使用.NET框架2.0版结合SQL Server 2005和Visual Studio 2005与使用.NET框架1.1版结合DB2 UDB 8.2相比,有着一些显著的优势。.NET框架2.0版和以前版本相比,功能有着显著的增强:
·改善的性能和装载时间
·支持泛型(同一个类和方法可针对于不同数据类型的值一样运行,因此提高了代码重用性)
·支持“编辑后继续运行”(Edit-and-Continue),开发人员能够在执行过程中修改代码,而无需中止和重新开始调试会话。
·一个新的数据保护API(DPAPI),使得应用程序能对某些敏感信息加密,例如连接字符串甚至内存块。
·流的身份验证功能通过新的NegotiateStream和SslStream类答应您使用 Kerberos 或 SSL 来实现客户端和服务器端的安全通道。
·COM互操作性的改善将使得.NET应用程序在调用现存的COM对象时有着更好的性能和可靠性。
·经过改善的I/O性能加上对GZIP数据压缩的支持
·64位应用程序兼容性
部署.NET逻辑到SQL Server
每个数据库平台实际使用.NET对象的方式也是有着很大差别的。在SQL Server 2005中,一个新的SQL Server数据库对象程序集(Assembly)是部署.NET对象(例如触发器或是存储过程)的最小单元,程序集组是部署.NET逻辑的最小单元。为了创建CLR数据库对象,你必须首先使用Visual Studio 2005创建一个DLL。接着将这个DLL导入到SQL Server中作为一个数据库程序集对象。这些步骤能够使用命令行编译器和CREATE ASSEMBLY命令手工实现,或者像在技术演示部分里所看到的一样,Visual Studio 2005能自动完成整个流程。
评论加载中…
![]() |