SQL Server 2005 CLR 功能简介

2016-02-19 21:16 5 1 收藏

下面图老师小编要向大家介绍下SQL Server 2005 CLR 功能简介,看起来复杂实则是简单的,掌握好技巧就OK,喜欢就赶紧收藏起来吧!

【 tulaoshi.com - 编程语言 】

  在SQL Server 2005的众多被高度评价的特性中,有一个最适合那些对SQL Server编程的人员的就是通用语言运行时,缩写为CLR(Common Language Runtime)。CLR允许编程人员直接在SQL Server 中创建存储过程,触发器,用户定义函数,集合和类型。CLR有很多的承诺,但是它也具有一些缺陷。

  CLR的重要性有几个比较大的原因。首先,由于SQL Server编程已经成熟了,编码器运行在SQL Server 自身可能的限制之中,并且很大程度上依赖于外部代码来执行一些繁重的操作。T-SQL (Transact-SQL)在返回数据集合方面非常好,但是在其他方面就不是很好了。CLR使得解决问题和缩减SQL Server内部的数据复制成为可能,通过在SQL Server中需要完全地分离程序来努力实现。.NET操纵代码以及执行速度方面比SQL Server和T-SQL 强得多;.NET中同样位置的代码由于是二进制,因此其运行多次仍然比构建为存储过程快上许多。

  使用CLR的另一个巨大的好处就是:安全。所有的代码都是在运行之前检测类型和许可安全的。例如,先前没有被写入的内存是不会被请求中的代码访问的。CLR还非常的完善;.NET框架中的素有的东西都可以在存储过程、触发器或者用户函数中进行访问——除了处理类似用户界面的类,这些类在SQL Server中没有用处。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  为了避免CLR的疯狂运行,微软创建了一个三层的安全模型,规定了CLR代码是如何调用的:安全、外部访问和不安全(SAFE, EXTERNAL_ACCESS and UNSAFE)。安全权限设置与传统的可以执行的存储过程一样重要。它不可以被SQL Server自身之外的任何东西修改。外部访问允许通过.NET来访问注册表和文件系统。不安全的命名很恰当。被标记为不安全的代码不能做任何事情,并且他们实际上在调试或者试验环境之外无法使用。大多数的编程人员都不需要使用高于外部访问的东西。(如果你需要在存储过程或者函数的环境内访问文件系统或者注册表,那么很有可能标记着你需要重新考虑你正在做的事情的逻辑了。)

  然而,CLR并不适合所有的东西。有一件事,它可能最适合那些不轻松、需要编程的、在T-SQL 中实现的环境。许多简单的操作可以作为T-SQL中的存储过程完成,并不需要做成外部处理。这意味着上下文替换和额外的事务负担,这两项中的每一项都会抵消你使用CLR带来的最主要的速度的提升。CLR用于替换扩展存储过程是最好的——例如,那些与数据库关系密切,但是T-SQL 处理起来过于繁琐的,并且很难轻松地移动到事物的业务逻辑端的。

(本文来源于图老师网站,更多请访问http://www.tulaoshi.com/bianchengyuyan/)

  还有一个可能的不利是:正如SQL 的领袖Rod Paddock 在他的blog里面指出的,如果你将业务逻辑的某个部分移动到更接近数据库,那么有可能引起可测量性的问题。不管怎么说,SQL Server都更适合按比例扩大地放在单个的大型机上,而不是分布在多个较小的机器上(这通常是业务逻辑的测量方式S)。以上指出了有选择地使用CLR是多么的重要。T-SQL 非常紧凑并且有效率;CLR/.NET 具有扩展性和包容性。正确的工作是采用正确的工具,虽然拥有很多的选择是多么好的一件事情。

来源:http://www.tulaoshi.com/n/20160219/1625749.html

延伸阅读
    QL Server 2005 Compact Edition(本文以后均将SQL Server 2005 Compact Edition缩写为SQL Server CE)是微软推出的一个适用于嵌入到移动应用的精简数据库产品,Windows Mobile开发人员能够使用SQL Server CE开发出将数据管理能力延展到Window Mobile移动设备上的应用程序。虽然SQL Server CE占用的磁盘空间只有3到5兆左右,...
标签: SQLServer
  以下实现复制步骤(以快照复制为例) 运行平台SQL SERVER 2005 一、准备工作: 1.建立一个 WINDOWS 用户,设置为管理员权限,并设置密码,作为发布快照文件的有效访问用户。 2.在SQL SERVER下实现发布服务器和订阅服务器的通信正常(即可以互访)。打开1433端口,在防火墙中设特例 3.在发布服务器上建立一个共享目录,作...
SQL Server 是一个关系数据库管理系统它最初是由Microsoft Sybase 和Ashton-Tate三家公司共同开发的于1988 年推出了第一个OS/2 版本在Windows NT 推出后Microsoft与Sybase 在SQL Server 的开发上就分道扬镳了Microsoft 将SQL Server 移植到Windows NT 系统上专注于开发推广SQL Server 的Windows NT 版本Sybase 则较专注于SQL Server在...
   现在很多网站都提供了站内的搜索功能,有的很简单在SQL语句里加一个条件如:where names like ‘%words%’就可以实现最基本的搜索了。    我们来看看功能强大一点,复杂一点的搜索是如何实现的(在SQL SERVER200/2005通过存储过程实现搜索算法)。    我们把用户的搜索可以分为以下两种: ...
在SQL Server 配置管理器中,展开SQL Server 2005的网络配置,然后点击服务器实例如:MSSQLSERVER 的协议。 在右窗格中,双击TCP/IP协议。 在TCP/IP属性对话框中,单击IP地址选项卡。 在TCP端口框中的IPAll节,输入一个可用的端口号。对于本教程中,我们将使用1500。 单击确定以关闭该对话框,然后单击确定的警告说,必须重新启动服务。 在...

经验教程

986

收藏

52
微博分享 QQ分享 QQ空间 手机页面 收藏网站 回到头部