SQL Server查询提示(6):优化器提示

优化器提示主要有以下几种:


(1)fast number_rows

这个提示,可以看作是 优化器目标,做为一种指导方针,影响优化器的决策。

比如:

select * from A with(fast 100)

就是告诉sql server的优化器,以最快的速度返回100行数据,以这个为目标,生成执行计划,所以,返回100行数据的速度会很快,但是对后面的数据来说,这个执行计划可能不是最优的。


(2)robust plan

 强制查询优化器尝试一个计划,该计划可能以性能为代价获得最大可能的行大小。 

处理查询时,中间表和运算符可能需要存储和处理比输入行宽的行。 在有些情况下,行可能很宽,以致某个运算符无法处理行。如果发生这种情况,数据库引擎将在查询执行过程中生成错误。通过使用 ROBUST PLAN,可以指示查询优化器不考虑可能会遇到该问题的所有查询计划。
如果不能使用这样的计划,查询优化器将返回错误而不是延迟对查询执行的错误检测。

行可以包含可变长度列;数据库引擎允许将行大小定义为超过数据库引擎处理能力的最大可能的大小。

通常,应用程序存储实际大小在数据库引擎处理能力范围内的行,而不管最大可能大小。如果数据库引擎遇到过长的行,则返回执行错误。

(3) OPTIMIZE FOR (变量名 = 值)

一般用在定义了变量的sql中,让sql server的优化器 按照 变量为某个值的这种情况,生成执行计划。


(4)EXPAND VIEWS

指定展开索引视图,而且查询优化器不将任何索引视图看作是查询中任何部分的替代。当视图名称由查询文本中的视图定义替换时,视图将展开。
实际上,该查询提示不允许在查询计划中直接使用索引视图和直接在索引视图上使用索引。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值