.NET Framework CLR与SQL Server 2005数据库引擎集成的非常紧密。实际上,SQL Server 数据库引擎是以CLR为基础宿主的。与同DB2和Oracle与.NET的集成相比,这一紧密的集成使得SQL Server 2005具备了与.NET集成的几个明显的优势。在下图3-1中,你可以看到SQL Server 2005数据库引擎和CLR集成的概要介绍。
如图3-1所示,你可以看到,CLR是SQL Server数据库引擎内的宿主在SQL Server数据库引擎内的。SQL Server数据库使用专用API或者宿主层与CLR交互,使Windows操作系统与CLR相连接……
我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。
我原创,你原创,我们的内容世界才会更加精彩!
【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】
微信公众号

TechTarget
官方微博

TechTarget中国
.NET Framework CLR与SQL Server 2005数据库引擎集成的非常紧密。实际上,SQL Server 数据库引擎是以CLR为基础宿主的。与同DB2和Oracle与.NET的集成相比,这一紧密的集成使得SQL Server 2005具备了与.NET集成的几个明显的优势。在下图3-1中,你可以看到SQL Server 2005数据库引擎和CLR集成的概要介绍。
如图3-1所示,你可以看到,CLR是SQL Server数据库引擎内的宿主在SQL Server数据库引擎内的。SQL Server数据库使用专用API或者宿主层与CLR交互,使Windows操作系统与CLR相连接。CLR宿主在SQL Server数据库内使得SQL Server数据库引擎可以控制CLR的几个重要方面,其中包括:
内存管理
线程
垃圾回收
DB2和Oracle的实现都使用CLR作为外部进程,这意味着CLR和数据库引擎都会竞争系统资源。SQL Server 2005进程内宿主CLR给Oracle或者DB2使用的外部实现提供了几个重要的优势。首先,进程中宿主使得SQL Server可以控制CLR的执行,使得像内存管理,垃圾回收和线程管理这些重要的功能都在SQL Server 数据库引擎的控制之下。在外部实现中,CLR将独立地管理这些功能。数据库引擎对系统需求整体上有一个更好的效果,可以比CLR本身能更好地管理内存和线程。最后,进程中宿主CLR将提供更好的性能和可扩展性。
图 3-1: SQL Server CLR数据库架构
启用CLR支持功能
默认状态下,SQL Server数据库引擎中的CLR支持功能是处于关闭状态的。这是为了确保SQL Server的更新安装不会在管理员没有明确参与的情况下无意中启用新功能。要启用SQL Server的CLR支持,你需要使用SQL Server sp_configure系统存储过程的高级选项,请看下面的列表:
sp_configure 'show advanced options', 1 GO RECONFIGURE GO sp_configure 'clr enabled', 1 GO RECONFIGURE GO |
CLR数据库对象组件
要创建.NET 数据库对象,你要从编写管理代码开始,可以用任何一种.NET语言,比如VB,C#或者Managed C++,然后把代码编译成.NET的DLL(动态链接库)。最常见的实现方式就是使用Visual Studio 2005创建一个新的SQL Server项目,然后执行编译构建生成DLL。当然,你也可以使用你自己喜欢的编辑器编写.NET代码,然后使用.NET Framework SDK把代码编译成.NET动态库。ADO.NET是连接CLR动态库和SQL Server数据库的中间件。一旦.NET动态库创建好以后,你需要把该动态库注册到SQL Server,创建一个新的SQL Server数据库对象叫做程序集(assembly)。程序集本质上就是把.NET动态库封装了一下。然后你可以创建一个新的数据库对象(比如存储过程或者触发器)指向SQL Server程序集。在图3-2中,你可以看到创建CLR数据库对象的大致过程。
图 3-2: 创建CLR数据库对象
作者
翻译
TechTarget特邀编辑。2003年入软件行业,熟悉软件过程所有环节,对机构信息化的各方面有深入理解和实践经验。现就职于某互联网创业公司,目前关注互联网分布式系统架构和机器学习。喜欢传统文化社科哲学(尤喜《周易》、《老子》),喜健身喜抓举(具备抱人引体向上的能力),喜欢中国象棋(具备盲棋1对2的能力)。
相关推荐
-
Linux支持的引入 推动了SQL Server 2016集成服务的发展
随着SQL Server的不断发展,集成服务也在发生相应的变化。在最新的SSIS更新中,增加Linux支持和SQL Server 2016升级向导。
-
Notre Dame对云端SQL Server性能基准的探索实践
确立SQL Server的性能基准,对于云端迁移来说是至关重要的第一步,一位来自于University of Notre Dame 的DBA表示,他正在试图通过数据库监控软件,找出SQL server的性能基准。
-
控制合约 不再畏惧Oracle
许多公司都与Oracle有无限制授权协议,他们害怕离开这个协议,所以就证明他们在使用Oracle的软件,即使因为需求单独购买部分授权许可也可能总体是省钱的。
-
如何应对Oracle EBS实施中的六个挑战?
在18个月的时间里,Vitamix启动运行了Oracle电子商务套件(E-Business Suite,EBS),而且Vitamix还对诸如Oracle ATG Web Commerce等所有页面属性进行了重新整理,并实现了全球数据中心。