sql-server - Distinct 和 Group By 的性能何时不同?

标签 sql-server tsql group-by distinct

我知道在简单查询中,Distinct 和 Group By 的性能和执行计划几乎相同。

例如

SELECT Name FROM NamesTable GROUP BY Name
SELECT DISTINCT Name FROM NamesTable

但我读到在某些情况下它们的性能会有所不同,例如在子查询等中?

那么,您能否举一些例子或解释一下它们的性能不同的一些场景?

非常感谢

最佳答案

如果您在字段列表中包含计算值,您将看到执行计划中的差异。

select Value,
       getdate()
from YourTable
group by UnitID

select distinct
       Value,
       getdate()
from YourTable

group by 查询在计算标量值之前进行聚合。 distinct 查询在聚合之前计算标量值。

关于sql-server - Distinct 和 Group By 的性能何时不同?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10650719/

相关文章:

sql-server - 生成数据库中所有索引的脚本

sql - SQL Server 中的连接组

mysql - 使用 GROUP BY 查询会变慢

sql - 如何从重叠日期中获取单独的时间间隔

MySQL - 在相似的时间戳上分组

java - 如何防止Hibernate公式注释在保留字前添加表名?

sql - 为什么 SELECT 在死锁图中显示更新锁

sql - 当我在 SSMS v.17.1 中使用 "DROP TABLE IF EXISTS"时出现错误

html - 查找 Sql Server 表中包含 HTML 标签的所有行

sql-server - 使用连续编号更新 SQL