41071.htm
来自「一本很基础的SQL讲解」· HTM 代码 · 共 322 行 · 第 1/5 页
HTM
322 行
<link href="./dzs_cs.css" rel="stylesheet" type="text/css" /><table width="96%" border="0" align="center" cellpadding="0" cellspacing="0"> <tr> <td> </td> </tr> <tr> <td height="24" align="center" valign="bottom" class="d_font3">SQL Server数据库引擎.NET CLR环境数据库管理员向导</td> </tr> <tr> <td height="3" bgcolor="#E3E3E3"></td> </tr> <tr> <td> </td> </tr> <tr> <td class="d_font4"><P>这本白皮书也为数据库引擎 .NET Framework 编程 API提供了配置向导。它也为编码,更改和释放管理过程提供建议,并且这些建议应该适合每个数据库管理员的具体情况以确保一个专业和安全的配置。 </P>
<P><STRONG>目录</STRONG></P>
<P><STRONG>关于此白皮书</STRONG></P>
<P><STRONG>为工作寻找正确的工具<BR> <BR>在数据库引擎中.NET Framework编程的初步介绍 <BR></STRONG>高性能执行 <BR>设计,默认及部署方面的安全 <BR>步骤1: 打开Surface Area Configuration 工具 <BR>步骤2: 激活数据库引擎.NET Framework 设计 API <BR>用Transact-SQL激活API<BR> <BR><STRONG>为工作选择正确的工具</STRONG><BR> <BR><STRONG>程序范例<BR> <BR>目录对象 <BR></STRONG>程序集 <BR>存储过程 <BR>触发器 <BR>用户定义函数 <BR>标量函数 <BR>表值函数 <BR>用户定义聚合 <BR>用户定义类型<BR> <BR><STRONG>安全维护<BR> <BR>源代码管理<BR> <BR>Release 管理 </STRONG></P>
<P><STRONG>性能检测<BR> <BR>调试代码<BR> <BR>排错 </STRONG></P>
<P><STRONG>Beyond SQL Server 2005 </STRONG></P>
<P><STRONG>概要 </STRONG></P>
<P><STRONG>SQL Server 2005的额外资料<BR></STRONG>在Microsoft.com, MSDN和 TechNet上的免费资料 </P>
<P><STRONG>其他资源</STRONG> </P>
<P><STRONG>关于此白皮书</STRONG></P>
<P>在此白皮书中描述的这些特性及计划是SQL Server下一版本的发展方向。它们不是这一产品的说明书而且也建议在使用中有所变更。在此不作出任何保证,暗示或其它,这些新特性将会包含在最后产品发行书中。</P>
<P>对于某些新特性,此文档以读者熟悉SQL Server 2000的性能和服务为前提。若您拥有SQL Server性能和服务的背景, 读者可以参见正式产品的网站:<A href="http://www.microsoft.com/sql/">http://www.microsoft.com/sql/</A> 或者在Microsoft 网站上获取SQL Server资源工具包。</P>
<P>此白皮书会提供相关信息使得数据库管理员能够成功的,没有风险的,没有压力的在数据库引擎中确保Microsoft .NET Framework编程的使用。因此,此白皮书的读者应该是数据库管理员。 作为一个使用SQL Server 2005数据库引擎且具有远见的开发者,您可以登录MSDN 中题目为 Using CLR Integration in SQL Server 2005的白皮书以学习更多知识。</P>
<P><STRONG>为工作寻找正确的工具</STRONG></P>
<P>Microsoft® SQL Server™ 2005 提供一套完整的程序接口,使得开发者可以比以前更加轻松,更易操作的,更具可靠性的构建完善的数据库应用程序。随着大篇幅的程序选项而来的是为每个任务提供整套适当工具的考量的需求。虽然很多任务可以用很多方法完成,但每种方式都有其优势和弊端。因此,为工作找寻最好的工具的标准在于应用程序在商业使用中的加载和使用的程度。数据库管理员可能会有意下一些问题:</P>
<P>◆系统是否应该用XML处理数据或者删除和存储是否应该相关联?<BR>◆这些过程和这些过程复杂的操作步骤是否应该被同步或异步处理?<BR>◆这些商业逻辑,计算或额外的安全选则是否应该在客户应用程序,中间层或后台数据库中被处理? <BR>◆数据分析是否应该在关联数据库中或者通过商业整合引擎来处理?<BR>◆数据转变是否在智能服务ETL 引擎里发生或者是在SQL处理数据库里来转变?<BR>◆传统运行在中间层服务器中的复杂商业逻辑是否仍然在中间层或是移动至SQL Server平台? <BR>◆怎样混合的客户及服务器在infrastructure 中运行。是否需要Windows客户端,Unix 客户段的支持,还是两个均需要?<BR> <BR>在大多数数据库开发项目中,与数据库相互影响的技术选择和组件结构化设计的角色落到了数据库管理员(DBA)的身上。这个管理者就是管理和恢复商业数据拥有最终职责的那个人。大多数数据库管理员们对新技术采取保守态度。这是一个本能,因为同新功能提供的好处随之而来的是,新技术可能包括危及稳定性和完整性的新风险。经验丰富的数据库管理员 经常通过全面的测试和对新技术的理解来为管理风险/利益作出保证。而且更多的是,他们常常花时间来确定哪里加入更值得,或者更重要的是,哪里不能被使用。因此在本能的保守主义作用下,数据库管理员可能会问:“当我明白了这些特性我怎么将它们关掉?”好消息是早前发布的SQL Server ,这回发布的版本在默认情况下新特性是关掉的。</P>
<P>与那些将新特性永久关闭的人不同的是,一个谨慎的数据库管理员 将会注意学习足够的技术来决定它可以在哪里被适当的使用以及哪里可以使它发挥最大作用。完全不需要理解开发者可能会使用到的每一个语言里的每一行代码,但是你确实需要足够的信心来提供非常多的操作支持,维护和排错。 在这些新特性的围绕下,适当使用它们的关键在于理解力,分析能力以及强的控制力。</P>
<P>#p#</P>
<P><STRONG>在数据库引擎中.NET Framework编程的初步介绍</STRONG> </P>
<P>当SQL Server数据库表和视图不许编写代码时,SQL Server 2000数据库程序员拥有如下选择:</P>
<P>◆在数据库中使用Transact-SQL 编写代码。代码可以被写为存储过程,用户定义功能,也可以将触发器看作调用数据变化的已存储的过程。<BR>◆使用Microsoft® Visual C++® 来编写代码,可以在数据库中运行。被写为一个扩展存储过程的代码在用户表面上看来是一个存储过程,且以同样方法运行。Parameters can be passed to参数可以被传递给扩展存储过程,而且他们可以参与事务的处理以及返回结果和状态。 <BR>◆使用sp_OA* (Object Access) 使用COM对象加载和影响系统存储过程。<BR>◆使用其它语言和中间设备,例如ADO 和ADO.NET, 用他们来编写在数据库外执行代码,然后在查询语句中查询或者调用存储过程和功能来访问数据。passes in queries or invokes stored procedures and functions to access data.</P>
<P>当解决方案要求用外部库提供数据在具有功能性的前提下是完整的时,每个选项都有不同作用。例如,有些选项是选择由.NET Framework提供,或者有些是选择将复杂数学运算应用在数据上,再或者是更多复杂性的需求,例如一个客户数据集或一个真实的使用者定义数据类型。</P>
<P>这四个选项每一个都有限制:</P>
<P>◆Transact-SQL对于操作的基本设置是最好的,例如在表之间作比较,但是由于口语的限制,它为繁重任务量的可估测性的传送带来了障碍。另一个限制是不同于现代编程语言,Transact-SQL 不能够支持私有/共有数据封装,因此对他来在模块间清除接口说是比较困难的。 最后, SQL Server 2005在Transact-SQL中引进了改良的错误处理机制。然而,它仍然易受那些由丢失对象或错误语法所引起的不可引导的错误所影响,但这些错误在.NET Framework语言中是很容易解决的。<BR>◆扩展存储过程是很自然地被编写在不可管理的代码中且在SQL Server进程中执行。高级别的编程能力是在不关注内存漏洞的情况下创建SQL Server进程完整的代码。扩展存储过程不可以提供在进程中状态时不支持状态中对Microsoft .NET Framework 库的访问。 想得到更多信息,请登陆题目是Using extended stored procedures or SP_OA stored procedures to load the CLR in SQL Server的基础知识文章。在这里并不提供。<BR>◆sp_OA* 系统存储过程空间在COM上是有限制性的。它要求它的接口是在兼容的方法上执行,在单独调用的COM对象上有更加严格的数据限制。它们鼓励使用不相称组件,而且它们没有被设计为可以使用高吞吐量,或者不支持在单一进程中使用多重调用。在最坏的情况下,组件可以试着显示一个错误消息界面或者在SQL Server上显示其它对话框。<BR>◆外部代码可以导致操作问题,因为数据必须留给SQL Server 进程空间而且需流动至应用程序呼叫。这个数据组可能占用大量数据集。<BR>◆目前的选项没有可以用来创建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.首要级别的函数或者用户数据类型意味着在数据库上像原始的函数和数据类型一样的运行。</P>
<P>由于以上的局限,SQL Server 2005整合了.NET Framework 通用语言运行时(为管理代码提供执行环境)因此,数据库开发者能够可以将以管理好的应用程序代码安放在SQL Server中,这样做是安全,保险,可升级和多特色的。代码可以按以下方式写:</P>
<P>◆用户定义功能(标量 或者表值)<BR>◆存储过程<BR>◆触发器<BR>◆用户定义聚合<BR>◆用户定义类型</P>
<P>对于对象的用户定义功能的映射, 存储过程,以及触发器都在管理代码里编写,这样做是非常直观的。CLR程序像应用Transact-SQL一样的被访问和执行的。然而, 用户定义聚合和类型是非直观的, 数据库程序员可以用新的方法选择扩展选项:</P>
<P>◆用户定义聚合允许程序员建立习惯性聚合函数(用GROUP BY子句来关联). 这可以在数据库引擎中进行复杂统计和数据分析。<BR>◆用户定义类型为程序员提供用习惯性行为定义新类型的权限。综合.NET Framework 的能力和第三方库,这个新型能将会允许强大的类型对象被创建而不是形成关联陈述。</P>
<P><STRONG>高性能执行</STRONG></P>
<P>SQL Server 2005向 数据库服务器进程中的已管理的代码传递高性能访问,与其它数据库技术不同的是,它提供.NET Framework 综合度,SQL Server 2005管理数据库引擎进程空间中的运行时环境(CLR)。使得SQL Server 查询执行环境具有更高的性能。而整合功能被设计出来是为了在数据库查询和编程时避免内存和CPU冲突。另外, the SQL Server和.NET Framework 软件工程师们致力于使CLRSQL Server 进程中更安全和更好用。</P>
<P>◆CLR 向SQL Server提出内存请求,而不是直接从Windows中申请。 <BR>◆CPU加强器CLR内存 通过SQL Server回收资源。 <BR>◆一个在进程中的version of the被管理的SQL Server 客户通过SQL 要求直接进入SQL Server 查询进程器, 因此应避免昂贵的网络交互作用。 <BR>◆CLR 应用程序域被SQL Server创建及管理。 </P>
<P>被设计出来的所有的工程是为了确保失控的CLR程序不可以危及SQL Server的可靠性。</P>
<P><STRONG>设计,默认及部署方面的安全</STRONG></P>
<P>Microsoft 致力于为其客户提供安全的产品。例如,SQL Server 2000 SP3中提出的信任计算。这种设计将作为微软产品更进一步增前“off by default”默认安全的理念将进一步影响SQL Server。</P>
<P>注意 数据库引擎.NET Framework 编程 API 是默认关闭的, 且数据库管理员 必须进行一些操作来激活这一功能。</P>
<P>SQL Server 2005 引入了Surface Area Configuration 工具,它被激活后能够由数据库管理员 来控制。这一改变可以确保那些潜在的人们不习惯使用的功能不被激活且被遗留为不被保护状态。</P>
<P><STRONG>步骤1: 打开Surface Area Configuration 工具</STRONG></P>
<P><A href="/files/uploadimg/20070227/1816170.jpg" target=_blank><IMG height=356 alt="" src="/files/uploadimg/20070227/1816170.jpg" width=450 border=0></A> </P>
<P><STRONG>图 1</STRONG></P>
<P>The 此工具的快捷方式被安装在SQL Server 2005程序组的配置工具sub-group 中的Start/All 程序菜单。</P>
<P>选择SQL Server Surface Area 配置选项然后选择 Surface Area Configuration for Features选项。</P>
<P>这样将会打开一个对话框在它下面激活一个SQL 服务器实例选项,然后是均锁定的选项</P>
<P>#p#</P>
<P><STRONG>步骤2: 激活数据库引擎.NET Framework 设计 API</STRONG> </P>
<P>选择Surface Area Configuration for Features opens the dialog below. 将出现两个视图:通过SQL Server默认(通过实例)激活选项,第二个是通过组件激活选项例如数据库引擎和报表服务。 </P>
<P>在激活这些功能前,增加SQL 服务器的 的外表区域,推荐数据库管理员确保他们的系统遵从以下几点:</P>
<P>◆最新的服务包和关键的热修补包 (可由 Microsoft Update获得)<BR>◆配置遵从他们的推荐以使系统更安全 (这些也可以由其他的针对服务器和基础架构的第三方工具来配置)</P>
<P><A href="/files/uploadimg/20070227/1816171.jpg" target=_blank><IMG height=345 alt="" src="/files/uploadimg/20070227/1816171.jpg" width=450 border=0></A> </P>
<P><STRONG>图 2</STRONG></P>
<P>数据库引擎 .NET Framework 设计API是数据库引擎特性趋势,且把它以CLR 整合到用户界面中。</P>
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?