使用distinct子句在执行计划中进行流聚合

时间:2017-04-26 11:23:40

标签: sql sql-server

当我在查询中使用distinct子句并且在切换到执行计划之后,它显示聚集索引扫描的成本为93%,流聚合为7%。

我的查询是

SELECT DISTINCT LastName
FROM Person.Person 

有人可以解释一下吗?还有一件事我不熟悉这个执行计划的事情,我想了解执行计划中的每一个和所有相关内容,所以有任何博客或书籍可以帮助我理解执行计划。 感谢

1 个答案:

答案 0 :(得分:1)

DISTINCT

DISTINCT关键字使用内部GROUP BY

  

DISTINCT和GROUP BY通常会生成相同的查询计划,所以   两个查询结构的性能应该相同。

http://sqlmag.com/database-performance-tuning/distinct-vs-group

Stream Aggregate

  

Stream Aggregate运算符按一列或多列对行进行分组   然后计算由...返回的一个或多个聚合表达式   查询。

Stream Aggregate Showplan Operator

更多参考资料

你会在这里找到详尽无遗的logical and physical operators