赛迪网 > IT技术 数据库 > 精彩更新
  IT资讯搜索
 
IT产品搜索

细化解析:SQL Server2005查询计划指南 (1)

发布时间:2007.07.31 07:53     来源:赛迪网    作者:Alice

问:如果应用程序数据库查询性能低下,而我们又无法获得源代码来修改查询文本,

在不直接更改查询文本的前提下,怎样提高查询性能?

答:SQL Server 2005引入了称为”计划指南”的新特性,可以帮解决上述问题。

原理:

1. 当应用程序向Sql Server发送代码,查询优化器首先检查在缓存中是否有一个适当的询问计划,如果有,查询就按被找到的查询计划执行。

2. 如果没有匹配的查询计划,代码将被与一个称为内部查寻表(lookup table)比较, 看是否有一个已存在的计划指南与之匹配。

3. 如果在第2步找到匹配的计划指南,询问优化器将修改源代码以包括计划指南中查询提示。源代码中之前的任何查询提示将被新提示替换。

4. 查询计划将被编译和缓存。

5. 查询将按照你之前在计划指南设定的查询提示执行。

计划指南的分类:

有三种方式的计划指南:

1.OBJECT 计划指南:与在 Transact-SQL 存储过程、标量函数、多语句表值函数和 DML 触发器的上下文中执行的查询匹配。

2.SQL 计划指南:与在独立的 Transact-SQL 语句和批处理(不属于数据库对象)的上下文中执行的查询匹配。基于 SQL 的计划指南还可用于与参数化为指定形式的查询匹配。SQL 计划指南适用于应用程序使用 sp_executesql 系统存储过程频繁提交的语句和批处理。

3.TEMPLATE 计划指南:与参数化为指定形式的独立查询匹配。这些计划指南用于覆盖查询类的数据库的当前 PARAMETERIZATION 数据库 SET 选项。TEMPLATE 计划指南用于覆盖特定查询形式的参数化行为。您可以在以下任一情况下创建 TEMPLATE 计划指南。

可以在计划指南使用中的查询提示:

{HASH | ORDER} GROUP 

{CONCAT | HASH | MERGE} UNION 

{LOOP | MERGE | HASH} JOIN 

FAST number_rows 

FORCE ORDER 

MAXDOP number_of_processors 

OPTIMIZE FOR ( @variable_name = literal_constant ) [ ,…n ] 

RECOMPILE 

ROBUST PLAN 

KEEP PLAN 

KEEPFIXED PLAN 

EXPAND VIEWS 

MAXRECURSION number 

USE PLAN <xmlplan>

1 2 3 下一页>>


[ 发表评论 ] 字体[  ] [ 打印 ] [ 进入博客 ] [ 进入论坛 ]  [ 推荐给朋友 ]
  相关文章
· 不要在SQL Server中盲目地追求一句处理 (07-30) · 解析SQLServer怎样才能访问sybase中的表 (07-30)
· 怎样终止:SQL Server数据库的恢复过程 (07-29) · 轻松学会:配置SQL Server来做远程备份 (07-29)
· SQL/ASE SERVER 移植到同种平台的系统上 (07-29) · XP上不能安装SQL Server2000吗 (07-27)
· 通过分析SQL语句的执行计划优化SQL(三) (07-27) · sql2005安装sp1后报更新出错的处理方法 (07-27)
· 解析IP地址连接SQL数据库速度慢的原因 (07-26) · 解决SQLServer最大流水号的两个好方法 (07-26)
  客户需求反馈表
* 姓  名:
更多资料  了解方案  认识厂商
* 单位名称:
* 联系电话:
* 电子邮件:
  赛迪推荐  
  手机·资费 ·新品·导购·评测·手机资费·宽带
手机搜索  诺基亚 N73 MOTO Z6
  IT产品 ·笔记本·台式机·服务器·打印·投影
IT产品搜索 
  IT技术 ·开发·网管·安全·数据库·操作系统
  博客·论坛 ·曾剑秋·项立刚·Java学习·网管