一尘不染

SQL Distinct关键字是否会降低性能?

sql

我收到了一个使用distinct关键字的SQL查询。当我尝试运行查询时,花了至少一分钟的时间将具有数十万条记录的两个表联接起来,并实际上返回了一些东西。

然后,我取出了与众不同的东西,它在0.2秒后又回来了。独特关键字真的会使事情变糟吗?

编辑:这是查询

SELECT Distinct
c.username, o.orderno, o.totalcredits, o.totalrefunds,
o.recstatus, o.reason 

from management.contacts c 
join management.orders o
on (c.custID = o.custID)

阅读 374

收藏
2021-03-17

共1个答案

一尘不染

是的,因为使用DISTINCT遗嘱(有时根据评论)会导致对结果进行排序。对数百条记录进行排序需要花费时间。

尝试GROUP BY所有列,它有时可能会导致查询优化器选择更有效的算法(至少在Oracle中,我注意到显着的性能提升)。

2021-03-17