.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数据库对象
作者
翻译
相关推荐
-
云端SQL Server高可用性最佳做法
与内部部署相比,在云端运行SQL Server可为数据库软件用户提供更多的灵活性和可扩展性,也可能更省钱。但云 […]
-
甲骨文自治数据库亮相 带来云计算新希望
早前甲骨文还不在云计算公司之列,而现在该公司正在迅速弥补其失去的时间。甲骨文的云计算核心是甲骨文自治数据库(O […]
-
2017年12月数据库流行度排行榜 定格岁末排名瞬间
数据库知识网站DB-engines最近更新的2017年12月份数据库流行度排名情况是否能提供更多的看点呢?TechTarget数据库网站将与您分享12月份的榜单排名情况,让我们拭目以待。
-
2017年11月数据库流行度排行榜 半数以上数据库积分减少
数据库知识网站DB-engines更新了2016年11月份的数据库流行度排行榜。TechTarget数据库网站将与您一同关注11月份的榜单排名情况。