在数据库引擎中.NET Framework编程的初步介绍
当SQL Server数据库表和视图不许编写代码时,SQL Server 2000数据库程序员拥有如下选择:
◆在数据库中使用Transact-SQL 编写代码。代码可以被写为存储过程,用户定义功能,也可以将触发器看作调用数据变化的已存储的过程。
◆使用Microsoft® Visual C++® 来编写代码,可以在数据库中运行。被写为一个扩展存储过程的代码在用户表面上看来是一个存储过程,且以同样方法运行。Parameters can be passed to参数可以被传递给扩展存储过程,而且他们可以参与事务的处理以及返回结果和状态。
◆使用sp_OA* (Object Access) 使用COM对象加载和影响系统存储过程。
◆使用其它语言和中间设备,例如ADO 和ADO.NET, 用他们来编写在数据库外执行代码,然后在查询语句中查询或者调用存储过程和功能来访问数据。passes in queries or invokes stored procedures and functions to access data.
当解决方案要求用外部库提供数据在具有功能性的前提下是完整的时,每个选项都有不同作用。例如,有些选项是选择由.NET Framework提供,或者有些是选择将复杂数学运算应用在数据上,再或者是更多复杂性的需求,例如一个客户数据集或一个真实的使用者定义数据类型。
这四个选项每一个都有限制:
◆Transact-SQL对于操作的基本设置是最好的,例如在表之间作比较,但是由于口语的限制,它为繁重任务量的可估测性的传送带来了障碍。另一个限制是不同于现代编程语言,Transact-SQL 不能够支持私有/共有数据封装,因此对他来在模块间清除接口说是比较困难的。 最后, SQL Server 2005在Transact-SQL中引进了改良的错误处理机制。然而,它仍然易受那些由丢失对象或错误语法所引起的不可引导的错误所影响,但这些错误在.NET Framework语言中是很容易解决的。
◆扩展存储过程是很自然地被编写在不可管理的代码中且在SQL Server进程中执行。高级别的编程能力是在不关注内存漏洞的情况下创建SQL Server进程完整的代码。扩展存储过程不可以提供在进程中状态时不支持状态中对Microsoft .NET Framework 库的访问。 想得到更多信息,请登陆题目是Using extended stored procedures or SP_OA stored procedures to load the CLR in SQL Server的基础知识文章。在这里并不提供。
◆sp_OA* 系统存储过程空间在COM上是有限制性的。它要求它的接口是在兼容的方法上执行,在单独调用的COM对象上有更加严格的数据限制。它们鼓励使用不相称组件,而且它们没有被设计为可以使用高吞吐量,或者不支持在单一进程中使用多重调用。在最坏的情况下,组件可以试着显示一个错误消息界面或者在SQL Server上显示其它对话框。
◆外部代码可以导致操作问题,因为数据必须留给SQL Server 进程空间而且需流动至应用程序呼叫。这个数据组可能占用大量数据集。
◆目前的选项没有可以用来创建first-class,客户聚合功能 functions or custom data types where first-class means running within the database as if it were a SQL Server primitive function or data type.首要级别的函数或者用户数据类型意味着在数据库上像原始的函数和数据类型一样的运行。
由于以上的局限,SQL Server 2005整合了.NET Framework 通用语言运行时(为管理代码提供执行环境)因此,数据库开发者能够可以将以管理好的应用程序代码安放在SQL Server中,这样做是安全,保险,可升级和多特色的。代码可以按以下方式写:
◆用户定义功能(标量 或者表值)
◆存储过程
◆触发器
◆用户定义聚合
◆用户定义类型
对于对象的用户定义功能的映射, 存储过程,以及触发器都在管理代码里编写,这样做是非常直观的。CLR程序像应用Transact-SQL一样的被访问和执行的。然而, 用户定义聚合和类型是非直观的, 数据库程序员可以用新的方法选择扩展选项:
◆用户定义聚合允许程序员建立习惯性聚合函数(用GROUP BY子句来关联). 这可以在数据库引擎中进行复杂统计和数据分析。
◆用户定义类型为程序员提供用习惯性行为定义新类型的权限。综合.NET Framework 的能力和第三方库,这个新型能将会允许强大的类型对象被创建而不是形成关联陈述。
高性能执行
SQL Server 2005向 数据库服务器进程中的已管理的代码传递高性能访问,与其它数据库技术不同的是,它提供.NET Framework 综合度,SQL Server 2005管理数据库引擎进程空间中的运行时环境(CLR)。使得SQL Server 查询执行环境具有更高的性能。而整合功能被设计出来是为了在数据库查询和编程时避免内存和CPU冲突。另外, the SQL Server和.NET Framework 软件工程师们致力于使CLRSQL Server 进程中更安全和更好用。
◆CLR 向SQL Server提出内存请求,而不是直接从Windows中申请。
◆CPU加强器CLR内存 通过SQL Server回收资源。
◆一个在进程中的version of the被管理的SQL Server 客户通过SQL 要求直接进入SQL Server 查询进程器, 因此应避免昂贵的网络交互作用。
◆CLR 应用程序域被SQL Server创建及管理。
被设计出来的所有的工程是为了确保失控的CLR程序不可以危及SQL Server的可靠性。
设计,默认及部署方面的安全
Microsoft 致力于为其客户提供安全的产品。例如,SQL Server 2000 SP3中提出的信任计算。这种设计将作为微软产品更进一步增前“off by default”默认安全的理念将进一步影响SQL Server。
注意 数据库引擎.NET Framework 编程 API 是默认关闭的, 且数据库管理员 必须进行一些操作来激活这一功能。
SQL Server 2005 引入了Surface Area Configuration 工具,它被激活后能够由数据库管理员 来控制。这一改变可以确保那些潜在的人们不习惯使用的功能不被激活且被遗留为不被保护状态。
步骤1: 打开Surface Area Configuration 工具
图 1
The 此工具的快捷方式被安装在SQL Server 2005程序组的配置工具sub-group 中的Start/All 程序菜单。
选择SQL Server Surface Area 配置选项然后选择 Surface Area Configuration for Features选项。
这样将会打开一个对话框在它下面激活一个SQL 服务器实例选项,然后是均锁定的选项
| 共10页: 上一页 [1] 2 [3] [4] [5] [6] [7] [8] [9] [10] 下一页 | ||
|
|
||||
| · NAC安全访问控制 · 网络布线测试仪器 · Windows Server 2008专.. · Windows远程桌面应用 · 网络故障排除宝典 · 运营商封堵ADSL共享 中.. · 解析35岁技术人的价值.. · 世纪枭雄比尔盖茨的王.. |
· 主流品牌防火墙配置 · ASP.NET开发教程 · 超级计算机TOP500专题 · Vista SP1对决XP SP3 · SQL Server 2008/2005.. · 程序员如何成长? · C#技术开发指南 · 虚拟化技术还有点“虚” |
|||
|
||||
| · SOA 面向服务架构 · SQL Server 2008/2005.. · Apache技术专题 · 三层交换技术专题 · SQL Server入门到精通 · Windows远程桌面应用 · C#技术开发指南 · Apache技术专题 |
· Windows集群服务应用 · C#技术开发指南 · 国际文档格式标准开战 · 路由器设置与口令恢复 · Linux 集群技术专题 · PHP开发应用手册 · SOA 面向服务架构 · 企业数据恢复指南 |
|||
|
||||
| · SQL Server入门到精通 · SQL Server 2008/2005.. · SOA 面向服务架构 · Apache技术专题 · C#技术开发指南 · 三层交换技术专题 · Apache技术专题 · C#技术开发指南 |
· Windows远程桌面应用 · 企业数据恢复指南 · Windows集群服务应用 · 路由器设置与口令恢复 · Linux 集群技术专题 · SOA 面向服务架构 · 了解统一威胁管理(UTM).. · 反垃圾邮件技术应用 |
|||