SQLServer2005中的SQLCLR.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
SQLServer2005中的SQLCLR

使用 SQL Server2005中的SQLCLR处理XML Showplan Arun Marathe Boris Baryshnikov Microsoft Corporation 适用于: Microsoft SQL Server 2005 Microsoft Visual C# .NET 摘要:构建一个应用程序以从其 XML Showplan 中提取查询的估计执行成本。用户只能将成本低于预定阈值的那些查询提交到运行 SQL Server 2005 的服务器,从而确保服务器不会由于成本高、长时间运行的查询而超载。 本页内容 简介 目标和受众 问题声明 解决方案 1:使用 CLR 存储过程和进程内数据访问提取查询成本 解决方案 2:使用 CLR 存储过程和 XQuery 表达式提取查询成本 小结 附录 A:“ShowplanXPath.cs”的代码清单(解决方案 1) 附录 B:“ReturnShowplanXML.cs”的代码清单(解决方案 2) 简介 Microsoft SQL Server 2005 使其查询执行计划(又称作 Showplan)可以采用 XML 格式。而且可以使用任何一种 XML 技术(例如 XPath、XQuery 或 XSLT)来处理 XML Showplan。本文描述从其 XML Showplan 中提取查询的估计执行成本的应用程序。Transact-SQL 所提取的成本可用于 Transact-SQL 窗口。使用该技术,用户只能将那些成本低于预定阈值的查询提交到运行 SQL Server 的服务器。这确保该服务器不会由于成本高、长时间运行的查询而超载。 返回页首 目标和受众 本文的目标是 SQL Server 开发人员和数据库管理员 (DBA)。它向数据库管理员简要介绍了 SQLCLR(公共语言运行库)。用于提取 Showplan 的应用程序使用两个 Microsoft Visual C# .NET 小程序,本文还详细阐述 SQL Server 如何调用通过编译这些程序生成的 DLL。该应用程序还使用了可用于查询和提取 XML 数据中信息的 XPath 和 XQuery 技术。SQL Server 2005 为这两种查询语言提供内置支持。本文演示这两种语言如何与 Transact-SQL 进行无缝地交互操作。 返回页首 问题声明 SQL Server DBA 有时会遇到这种情况,即用户在工作高峰期向服务器提交长时间运行的查询,因而降低了服务器的响应速度。有两种方法可以防止这一情况的发生: 1. DBA 可使用 sp_configure 将 query governor cost limit 选项设置为特定阈值。(这是一个高级选项。)该阈值在整个服务器内是有效的。 2. 要影响连接的阈值,DBA ??以使用 SET QUERY_GOVERNOR_COST_LIMIT 语句。 可以想像一下需要更细粒度控制的情况。例如,用户可能有三个等效但语法结构不同的查询,并希望以执行速度尽可能最快的形式自动提交该查询。此外,用户还可能希望不执行任何估计执行成本超过特定阈值的查询。以编程方式访问查询成本,将允许用户通过控制基于估计执行成本的查询提交过程来构建服务器友好的应用程序。 本文中描述的技术允许使用 SQLCLR 用户定义的过程、XPath、XQuery 以及 Visual C# 技术,以编程方式访问查询的估计执行成本。如本文所述,通过用户定义的过程使用 SQLCLR 来访问 SQL Server 2005 的基本技术也可用于其他应用程序。 在 SQL Server 2005 中,可以使用 .NET Framework 中可用的任何编程语言(例如 Microsoft Visual Basic .NET 或 Visual C#)来定义用户定义的类型、函数、过程以及聚合。从概念上讲,在定义了用户定义的实体后,就可以在 SQL Server 中使用该实体,就像是由 SQL Server 本身提供的实体一样。例如,定义用户定义的 T 类型之后,还可以定义带有一列 T 类型的关系型表。定义了用户定义的 P 过程后,就可以使用 EXEC P 调用该过程,就像 Transact-SQL 过程一样。 返回页首 解决方案 1:使用 CLR 存储过程和进程内数据访问提取查询成本 实现该解决方案 1. 使用 .NET Framework 语言(本文中使用 Visual C#)定义存储过程,该过程将从给定查询的 XML Showplan 中获得查询成本。 2. 使用正在运行 SQL Server 的服务器注册此过程。此操作需要两个子步骤: 1. 在 SQL Server 中注册该程序集。 2. 创

文档评论(0)

cgtk187 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档