如何使用一个SQL数据库计划指南来调整查询_SQL SERVER数据库_黑客防线网安服务器维护基地--Powered by WWW.RONGSEN.COM.CN

如何使用一个SQL数据库计划指南来调整查询[组图]

作者:黑客防线网安SQL维护基地 来源:黑客防线网安SQL维护基地 浏览次数:0

本篇关键词:指南调整查询组图
黑客防线网安网讯:  有这样一种方法。SQL Server 2005引进了计划指南,它可以让你把提示增加到特殊的查询中而不用直接改变任何查询本身。某些情况下,你不能更改源代码(或由于源代码是不能用的或源代码是严...

  有这样一种方法SQL Server 2005引进了计划指南它可以让你把提示增加到特殊的查询中而不用直接改变任何查询本身某些情况下你不能更改源代码(或由于源代码是不能用的或源代码是严禁使用的),那么这可以是很有用的一种工具。然而,要注意这是一种高级的功能,所以使用时要多加注意。

  你可以创建三种类型的计划指南。下面来自SQL Server联机帮助的摘录总结了这几种计划指南:

  OBJECT 计划指南与事务-SQL存储过程、纯量函数、跨语句表-值函数和DML触发器的上下文环境下执行的查询相匹配。

  SQL 计划指南与单机事务-SQL语句和不是数据库对象的成分上下文环境下执行的查询相匹配。基于SQL的计划指南也可以用来匹配确定指定表的参数的查询。

  TEMPLATE 计划指南与确定指定表的参数的单机查询相匹配。这些计划指南用来取代一系列的查询成为一个数据库当前参数化的数据库设置选项。

  一个计划指南的定义是通过系统存储过程sp_create_plan_guide来实现的:

   sp_create_plan_guide parameters
  EXEC sp_create_plan_guide @name, @stmt, @type, @module_or_batch, @params, @hints
  Here is an explanation of the parameters:
  @name - name of the plan guide
  @stmt - a T-SQL statement or batch
  @type - indicates the type of guide (OBJECT, SQL, or TEMPLATE)
  @module_or_batch - the name of a module (i.e. a stored procedure)
  @params - for SQL and TEMPLATE guides, a string of all parameters for a T-SQL batch to be matched by this plan guide
  @hints - OPTION clause hint to attach to a query as defined in the @stmt parameter

  让我们看看下面的例子,该例子模拟一个供应商应用程序执行一个内嵌在它们应用程序代码中的准备好的查询。下面参数化的动态SQL语句获得一个ProductID的SalesOrderDetail信息。
   USE AdventureWorks
  GO
  EXEC sp_executesql
  @stmt = N'SELECT * FROM Sales.SalesOrderDetail WHERE ProductID = @ProductID',
  @params = N'@ProductID int', @ProductID = 870
  GO
  EXEC sp_executesql
  @stmt = N'SELECT * FROM Sales.SalesOrderDetail WHERE ProductID = @ProductID',
  @params = N'@ProductID int', @ProductID = 897
  GO

  最初执行针对ProductID = 870的查询产生一次表扫描。由于ProductID出现在总共有121,317行的第4,688行,优化器确定了这是一个最好的计划。该计划将缓存并且为后续该查询的执行做好准备。

    黑客防线网安服务器维护方案本篇连接:http://www.rongsen.com.cn/show-9723-1.html
网站维护教程更新时间:2012-03-21 02:24:41  【打印此页】  【关闭
我要申请本站N点 | 黑客防线官网 |  
专业服务器维护及网站维护手工安全搭建环境,网站安全加固服务。黑客防线网安服务器维护基地招商进行中!QQ:29769479

footer  footer  footer  footer