北大青鸟首页添加收藏网站地图
网站首页 中心简介 课程详解 新闻动态 师资团队 就业中心 学员天地 招生问答 在线报名 技术讲座 证书查询
 2011年招生简章 |  高中生专区 | 白领特招班 | 大学生专区 | 学士后 | 充电\转行 | 电脑实用技术 | 报名须知 学员专访
学员天地
  联系我们
课程老师
张玲老师
周老师
  开班信息

开班时间  班级类型      状态
12月31日 网站开发班   限6座
12月28日 转行充电班   限7座
12月25日 在职充电班   限5座
12月20日 .net开发班   限3座
12月16日 android开发   限4座
12月09日 网络营销班   限2座
12月05日 软件开发    已满

  免费讲座

时间: 周三、周六、周日
地点: 北大青鸟航天桥校区
内容: 黑客攻防、网络安全、软件开发、学士
       后 
       择业 就业 创业
主讲: IT资深专家
电话: 010-51659300 / 88414120

点击查看详情>>
  热门专题
 
 
  热点新闻
·调查显示近四成大学毕业生6个月内离职
·专业技能培训成了许多学生走向社会、实现自
·好专业不一定好就业
·北大青鸟朴实男成为求职典范
·2011年中国大学生最佳雇主榜发布 国企
·高考落榜生该怎么办?学好技术是关键
·北大青鸟航天桥学校专家解读:高考后择校志
·高考填志愿是选择学校重要还是选择专业重要
·关注高考后考生心理,北大青鸟为高考不理想
·高考志愿填报:填的不是专业,是就业

  您的位置:北大青鸟首页 -> 学员天地 -> 教学文章 -> Computer

专家谈SQL Server 2005 CLR
    在SQL Server 2005的许多被大力推荐的特性里面,有一项可能对那些使用SQLServer 工作的编程人员最实用的是Common Language Runtime,或者简写为CLR。CLR可以让编程人员直接在SQL Server中创建存储过程、触发器,用户自定义函数,集合体和类型。CLR有很多的承诺,但是也有一些缺陷。
  
  关于CLR的重要性有一些主要的原因。首先,随着SQL Server 编程技术的成熟,代码编写人员陷入了SQL Server自身的一些限制之中,并且在很大程度上依赖外部的代码来执行一些繁重的移植。T-SQL (事务处理SQL)在返回数据集方面很好,但是除了这个之外则表现不佳。CLR使得问题的解决有了可能,并且在SQL Server内部进行数据操作,而这些原本需要一个完全独立的程序来实现的。.NET的操作代码和执行速度比SQL Server/T-SQL好得多;.NET中的同一位的代码可以运行更快地运行许多次,当它是二进制的,而不是作为存储过程来构建时。
  
  使用CLR的另一个巨大的好处就是安全。所有的代码都在运行前检测类型和安全权限。例如,先前没有被写入的内存是不允许被问题中的代码读取的。CLR也很完善;.NET框架中的每样东西都可以从存储过程、触发器或者用户函数进行访问——除了处理类似用户接口的类,它在SQL Server是无论如何不会有用的。
  
  要防止CLR代码胡乱运行,微软为CLR代码的调用创建了一个三层的安全模型:SAFE, EXTERNAL_ACCESS 和 UNSAFE。SAFE权限集合在本质上与传统的存储过程能够做的事情一样。在SQL Server之外不能对其进行任何修改。EXTERNAL_ACCESS允许通过.NET对注册表和文件系统进行访问。UNSAFE正如其名。标记为UNSAFE的代码不能做任何事情,并且它实际上是不应该在调试或者实验环境之外使用的。大多数的编程人员应该永远都不需要用到高于EXTERNAL_ACCESS级别的任何东西。(如果你需要在存储过程或者函数的环境中与文件系统或者注册表对话,这有可能意味着你需要重新考虑你尝试的逻辑了。)
  
  然而,CLR并不是适合一切。一方面,它可能适合那些不容易、需要进行编程,在T-SQL中实现的环境。许多简单的操作可以在T-SQL以存储过程的方式完成,并且不需要扩展到外部进程。这意味着上下文交换和额外的事务开销,这两项中的任何一项开销都能首先抹消你使用CLR获得的速度提升。CLR最好用于替代扩展存储过程——例如,那些必须封闭在数据库中,但是却非常麻烦,无法用T-SQL从容完成,同时又不能轻松移动到业务逻辑末尾的事情。
  
  另一个可能的缺点就是:正如SQL的领袖Rod Paddock在他的blog中指出的,如果你讲业务逻辑中的某个元素移动到数据库,那就可能会引起可测量性的问题。毕竟,SQL Server 更适合于按比例提高的单个大型机器,而不是横跨在几个比较小的机器(通常是按照业务比例来的)上。这一点指出了有选择的使用CLR有多重要。T-SQL简洁、有效;CLR/.NET昂贵并且范围广泛。正确的工作选择正确的工具,尽管拥有众多选择也不错。
返回顶部 | 招生简章 | 联系我们 | 乘车路线 | 招聘信息 | 网站地图 | 在线报名
版权所有2004-2009 金领园科技(北京)有限公司 京ICP备09038718号 京公网安备:110108006537号
海淀中心网址:http://www.bjbenet.com 电话:010-51659300 / 88414120
海淀地址:北京海淀区西三环北路甲105号科原大厦B座5层 (首都师范大学东门)