我的技术学习博客

导航

Sql OPTION语句详解

OPTION 子句用于指定在整个查询过程中的查询提示(Query Hint)。通常,用户不必使用OPTION 子句,因为查询优化器会自动选择一个最佳的查询计划。OPTION 子句必须由最外层的主查询来指定。各查询提示之间应使用逗号隔开。其语法如下: 
OPTION (<query_hint> [,...n] )
<query_hint> ::=
{ { HASH | ORDER } GROUP
| { CONCAT | HASH | MERGE } UNION
| { LOOP | MERGE | HASH } JOIN
| FAST number_rows
| FORCE ORDER
| MAXDOP number
| ROBUST PLAN
| KEEP PLAN
| KEEPFIXED PLAN
| EXPAND VIEWS
各参数说明如下: 
{HASH | ORDER} GROUP
指定在GROUP BY 或COMPUTE 子句中指定的查询使用散列法或排序法。所谓散列法是指为存储和检索数据项或数据,把搜索关键字转换为一个地址的一种方法。该方法常作为数据集内的记录的一种算法,可以使记录分组均匀,减少搜索时间。 
{MERGE | HASH | CONCAT} UNION
指定所有的UNION 操作符采用合并(Merge)、散列(Hash) 或连接(Concatenate)的方法执行操作。如果指定了多个UNION 提示,查询优化器会挑选一个最佳的提示方案。 
{LOOP | MERGE | HASH |} JOIN
指定查询过程中的所有连接操作采取循环连接(Loop Join)、合并连接(Merge Join)或散列连接(Hash Join) 的方法。如果指定了多个JOIN 提示,查询优化器会挑选一个最佳的提示方案。 
FAST number_rows

指定查询优化只用于迅速返回前number_rows 行数据,在number_rows 行以后的数据采用原查询方法。 
FORCE ORDER
指定在查询语法中说明的连接顺序在查询优化的过程中保持不变。 
MAXDOP number
忽略由Sp_configure 设定的针对查询的最大并行线程数目。 
ROBUST PLAN
强制查询优化器尝试使用最大行容量的计划。 
KEEP PLAN
强制查询优化器放松重新编译查询的阈值。指定此选项可以让一个表被多次更新而不必频繁地重新编译查询。 
KEEPFIXED PLAN
强制查询优化器不重新编译查询。这样只有当表的概要改变或执行Sp_recompile 存储过程时,才会重新编译查询。 
EXPAND VIEWS
扩展索引化视图(当一个视图的名称在查询文本中被视图定义替换时称这个视图被扩展了),并且查询优化器不再将索引化视图作为查询的某部分的替代品。如果视图使用了WITH (NOEXPAND) 说明,则不能被扩展。

posted on 2013-08-05 09:35  zhangzhan  阅读(2177)  评论(0编辑  收藏  举报