2.select userPws from offUserInfo where userId = 'jianchun' OPTION (HASH GROUP)??不懂!

解决方案 »

  1.   

    select userPws from offUserInfo where userId = 'jianchun' [ OPTION (HASH GROUP) ][ ] 里面有没有,没有区别吗?结果一样..但速度稍有差别..谁知道为什么?
      

  2.   

    帮助里面这么写--
    OPTION 子句
    指定应在整个查询中使用所指定的查询提示。每个查询提示只能指定一次,但允许指定多个查询提示。用该语句只可能指定一个 OPTION 子句。查询提示影响语句中的所有运算符。如果主查询中涉及 UNION,则只有涉及 UNION 运算符的最后一个查询可以有 OPTION 子句。如果一个或多个查询提示导致查询优化器不生成有效计划,则产生 8622 号错误。注意  查询优化器通常为查询选择最佳执行计划,因此建议有经验的数据库管理员将 <join_hint>、<query_hint> 和 <table_hint> 仅作为最后的手段。
    语法
    [ 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、DISTINCT 或 COMPUTE 查询子句中所描述的聚合应使用哈希操作或排列。{ MERGE | HASH | CONCAT } UNION指定由合并、哈希或串联 UNION 集合执行所有 UNION 运算。如果指定了不止一个 UNION 提示,查询优化器就会从这些指定的提示中选择开销最少的策略。{ LOOP | MERGE | HASH } JOIN指定在整个查询中所有的联接操作由循环联接、合并联接或哈希联接来完成。如果指定了多个联接提示,则优化器从允许的联接策略中选择最便宜的联接策略。 如果在同一个查询中,还为一对特定的表指定了联接提示,则虽然仍须遵守查询提示,但该联接提示将优先联接这两个表。因此,为这对表指定的联接提示可能只限制选择查询提示中允许的联接方法。有关详细信息,请参见提示。FAST number_rows指定对查询进行优化,以便快速检索第一个 number_rows(非负整数)。在第一个 number_rows 返回后,查询继续进行并生成完整的结果集。FORCE ORDER指定在查询优化过程中保持由查询语法表示的联接顺序。MAXDOP number只对指定了 sp_configure 的 max degree of parallelism 配置选项的查询替代该选项。当使用 MAXDOP 查询提示时,所有和 max degree of parallelism 配置选项一起使用的语义规则均适用。有关更多信息,请参见 max degree of parallelism 选项。ROBUST PLAN强制查询优化器以性能为代价,使用对最大可能的行大小有效的计划。处理查询时,中间级表和运算符可能需要存储和处理比输入行宽的行。在有些情况下,行可能很宽,以致某个运算符无法处理行。如果发生这种情况,SQL Server 将在查询执行过程中生成错误。通过使用 ROBUST PLAN,可以指示查询优化器不考虑可能会遇到该问题的查询计划。KEEP PLAN强制查询优化器对查询放宽估计的重新编译阈值。估计的重新编译阈值是一个点,基于该点当对表的索引列更改(更新、删除或插入)达到估计的数字时自动重新编译查询。指定 KEEP PLAN 将确保当表有多个更新时不会频繁地对查询进行重新编译。KEEPFIXED PLAN强制查询优化器不因统计中的更改或索引列(更新、删除或插入)而重新编译查询。指定 KEEPFIXED PLAN 将确保仅当更改基础表的架构或在那些表上执行 sp_recompile 时才重新编译查询。EXPAND VIEWS指定展开索引视图,而且查询优化器不将任何索引视图看作是查询中任何部分的替代。(当视图名称由查询文本中的视图定义替换时,视图将展开。)实际上,该查询提示不允许在查询计划中直接使用索引视图和直接在索引视图上使用索引。只有在查询的 SELECT 部分中直接引用视图,而且指定 WITH (NOEXPAND) 或 WITH(NOEXPAND、INDEX( index_val [ ,...n ] )),才会展开索引视图。有关查询提示 WITH (NOEXPAND) 的更多信息,请参见 FROM。只有语句的 SELECT 部分的视图(包括 INSERT、UPDATE 和 DELETE 语句中的视图)才受提示