SQLServer2005中的SQLCLR

SQLServer2005中的SQLCLR

ID:37491918

大小:52.13 KB

页数:9页

时间:2019-05-24

SQLServer2005中的SQLCLR_第1页
SQLServer2005中的SQLCLR_第2页
SQLServer2005中的SQLCLR_第3页
SQLServer2005中的SQLCLR_第4页
SQLServer2005中的SQLCLR_第5页
资源描述:

《SQLServer2005中的SQLCLR》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、使用SQLServer2005中的SQLCLR处理XMLShowplanArunMaratheBorisBaryshnikovMicrosoftCorporation适用于:MicrosoftSQLServer2005MicrosoftVisualC#.NET摘要:构建一个应用程序以从其XMLShowplan中提取查询的估计执行成本。用户只能将成本低于预定阈值的那些查询提交到运行SQLServer2005的服务器,从而确保服务器不会由于成本高、长时间运行的查询而超载。本页内容简介目标和受众问题声明解决方案1

2、:使用CLR存储过程和进程内数据访问提取查询成本解决方案2:使用CLR存储过程和XQuery表达式提取查询成本小结附录A:“ShowplanXPath.cs”的代码清单(解决方案1)附录B:“ReturnShowplanXML.cs”的代码清单(解决方案2)简介MicrosoftSQLServer2005使其查询执行计划(又称作Showplan)可以采用XML格式。而且可以使用任何一种XML技术(例如XPath、XQuery或XSLT)来处理XMLShowplan。本文描述从其XMLShowplan中提取查

3、询的估计执行成本的应用程序。Transact-SQL所提取的成本可用于Transact-SQL窗口。使用该技术,用户只能将那些成本低于预定阈值的查询提交到运行SQLServer的服务器。这确保该服务器不会由于成本高、长时间运行的查询而超载。返回页首目标和受众本文的目标是SQLServer开发人员和数据库管理员(DBA)。它向数据库管理员简要介绍了SQLCLR(公共语言运行库)。用于提取Showplan的应用程序使用两个MicrosoftVisualC#.NET小程序,本文还详细阐述SQLServer如何调用

4、通过编译这些程序生成的DLL。该应用程序还使用了可用于查询和提取XML数据中信息的XPath和XQuery技术。SQLServer2005为这两种查询语言提供内置支持。本文演示这两种语言如何与Transact-SQL进行无缝地交互操作。返回页首问题声明SQLServerDBA有时会遇到这种情况,即用户在工作高峰期向服务器提交长时间运行的查询,因而降低了服务器的响应速度。有两种方法可以防止这一情况的发生:1.DBA可使用sp_configure将querygovernorcostlimit选项设置为特定阈值。

5、(这是一个高级选项。)该阈值在整个服务器内是有效的。2.要影响连接的阈值,DBA可以使用SETQUERY_GOVERNOR_COST_LIMIT语句。可以想像一下需要更细粒度控制的情况。例如,用户可能有三个等效但语法结构不同的查询,并希望以执行速度尽可能最快的形式自动提交该查询。此外,用户还可能希望不执行任何估计执行成本超过特定阈值的查询。以编程方式访问查询成本,将允许用户通过控制基于估计执行成本的查询提交过程来构建服务器友好的应用程序。本文中描述的技术允许使用SQLCLR用户定义的过程、XPath、XQu

6、ery以及VisualC#技术,以编程方式访问查询的估计执行成本。如本文所述,通过用户定义的过程使用SQLCLR来访问SQLServer2005的基本技术也可用于其他应用程序。在SQLServer2005中,可以使用.NETFramework中可用的任何编程语言(例如MicrosoftVisualBasic.NET或VisualC#)来定义用户定义的类型、函数、过程以及聚合。从概念上讲,在定义了用户定义的实体后,就可以在SQLServer中使用该实体,就像是由SQLServer本身提供的实体一样。例如,定义

7、用户定义的T类型之后,还可以定义带有一列T类型的关系型表。定义了用户定义的P过程后,就可以使用EXECP调用该过程,就像Transact-SQL过程一样。返回页首解决方案1:使用CLR存储过程和进程内数据访问提取查询成本实现该解决方案1.使用.NETFramework语言(本文中使用VisualC#)定义存储过程,该过程将从给定查询的XMLShowplan中获得查询成本。2.使用正在运行SQLServer的服务器注册此过程。此操作需要两个子步骤:1.在SQLServer中注册该程序集。2.创建一个引用外部C

8、LR方法的存储过程。图1显示用于创建用户定义的CLR存储过程的示意图。以下步骤循序渐进地介绍该解决方案的过程。1.附录A包含一个VisualC#程序(ShowplanXPath.cs),该程序从运行SQLServer的服务器中提取XML格式的Showplan,然后在获得的Showplan上执行XPath表达式,以提取估计查询执行成本。第一步包括,使用VisualC#编译器编译该程序并生成一个DLL(Showpla

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。