distinct会影响效率吗

【distinct会影响效率吗】

distinct会影响效率吗

文章插图
distinct不会影响效率,只是这种代码的效率很低 。
大多数情况下,Distinct函数都会导致对最终结果集完成一次排序,因此,这就成为成本最昂贵的排序之一 。Distinct一直是SQL语言中成本最高的函数之一 。不过,对于DB2V9,优化工具会尽量利用索引来消除为确定唯一性所带来的排序,其方法类似于目前用GroupBy语句完成优化时的做法 。不过,实际上不必在SQL中使用Distinct,完全可以使用其他方式重写查询来得到同样的结果,这样做往往更为高效 。开发人员现在都很喜欢用Distinct,很多人在所有语句上都会加上Distinct来确保不出现重复 。不过这种代码的效率很低 。在对应用调优时,我首先要做的事情之一就是审查源代码,找出所有包含Distinct的语句,了解这些查询是否确实会得到重复的结果,查看这个Distinct是否会导致一个排序,然后重写这些语句 。通过对每晚批量作业的全面分析,就能很容易地大幅减少批量处理周期时间 。不过要记住,如果查询中包含Distinct,只要不会因此导致执行一个排序,这个查询可能也很高效 。

    推荐阅读