当前位置:  开发笔记 > 数据库 > 正文

哪个更好:区别或分组依据

如何解决《哪个更好:区别或分组依据》经验,为你挑选了4个好方法。

哪个更有效率?

SELECT  theField
FROM    theTable
GROUP BY theField

要么

SELECT  DISTINCT theField
FROM    theTable

dub.. 29

在您的示例中,两个查询都将生成相同的执行计划,因此它们的性能将相同.

但是,它们都有自己的目的.为了使代码更易于理解,您应该使用distinct来消除重复的行,并使用group by来应用聚合运算符(sum,count,max,...).



1> dub..:

在您的示例中,两个查询都将生成相同的执行计划,因此它们的性能将相同.

但是,它们都有自己的目的.为了使代码更易于理解,您应该使用distinct来消除重复的行,并使用group by来应用聚合运算符(sum,count,max,...).


我想补充说,添加不同的willy nilly删除重复的行可能是个坏主意,特别是如果它使用伪装交叉连接或缺少where子句中的项目.不同的将是我删除行的最后选择.

2> Frans Bouma..:

无所谓,它会产生相同的执行计划.(至少对于这些查询).通过使查询分析器或SSMS能够在运行查询后显示执行计划以及服务器跟踪统计信息,这些问题很容易解决.



3> Greg Dean..:

在大多数情况下,DISTINCT和GROUP BY生成相同的计划,它们的性能通常相同



4> Ken Yao..:

您可以查看执行计划以查找此语句的总成本.答案可能因情况而异.

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有