天天加油 - 助您成才
专家谈SQL Server 2005 CLR
您正在看的MS-SQL是:专家谈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昂贵并且范围广泛。正确的工作选择正确的工具,尽管拥有众多选择也不错。

排行

  1. Mysql linux安装日志
  2. 透视MySQL数据库之更新语句
  3. SQL Server 查询分析器快捷键集合
  4. 专家谈SQL Server 2005 CLR
  5. SQL Server 2005 的安全性
  6. SQL Server 安全加固手册共享
  7. 实现自动安装SQL Server数据库
  8. SQL Server数据仓库的构建与分析
  9. java实现10个数的全排列的应用
  10. Java语言深入 文件和流
  11. 如何使用Java编写多线程程序
  12. Silverlight、JavaFX、Flex技术比
  13. Visual Basic Print方法基础学习
  14. VB+Access设计图书管理系统
  15. 红旗Linux桌面6安装图解
  16. 巧妙调用系统功能 一键清除上网痕
  1. Mysql linux安装日志
  2. 透视MySQL数据库之更新语句
  3. SQL Server 查询分析器快捷键集合
  4. 用TRY/CATCH解决SQL2005的死锁
  5. 专家谈SQL Server 2005 CLR
  6. SQL Server 2005 的安全性
  7. SQL Server 安全加固手册共享
  8. 实现自动安装SQL Server数据库
  9. SQL Server SA权限总结经典技术
  10. SQL Server数据仓库的构建与分析
  11. java实现10个数的全排列的应用
  12. Java语言深入 文件和流
  13. XP中轻松获取未使用的IP地址
  14. 如何使用Java编写多线程程序
  15. Java服务器端编程安全必读
  16. Silverlight、JavaFX、Flex技术比
  1. Mysql linux安装日志
  2. 透视MySQL数据库之更新语句
  3. Spring集成XFire开发WebService
  4. 红旗Linux桌面6安装图解
  5. 巧妙调用系统功能 一键清除上网痕
  6. 快速浏览局域网络的共享
  7. 重设目录恢复模式下的管理员密码
  8. WinXP恢复管理员密码的五大秘诀
  9. 找回Windows XP密码又一招
  10. Windows XP操作系统登录密码复原
  11. 用C#读取sina天气预报到wap页面
  12. 在C#里实现DATAGRID的打印预览和
  13. Visual C# 常用快捷键
  14. C# WinForm中DataGrid列设置
  15. 充分利用C#匿名方法的平台优势
  16. 一个相当独立的通用分页控件c#源

最近更新

  • 推荐阅读
  • MS-SQL《专家谈SQL Server 2005 CLR》专家谈SQL Server 2005 CLR
    关于我们 | 版权申明 | 广告服务 | 友情链接 | 网站地图 | 使用帮助 | ©2006-2008 TTADD.COM