Sql 性能连接与相关子查询
Sql Performance join Vs co-related Subquery
TABLE : 员工 (id,mid,join_date)
问题 - 找出所有在其经理之前加入的员工
查询 1:
Select E1.id
From Employee E1 JOIN Employee E2 ON E1.mid=E2.id
Where E1.join_date < E2.join_date
查询 2:
Select E1.id
From Employee E1
Where E1.join_date < (Select E2.join_date From Employee E2 where E2.id=E1.mid)
哪一个是正确的?如果两者都正确,那么性能如何?
他们都是正确的。
性能问题需要在您的系统数据上进行测试。但是,对于 employee(id)
上的主键,我希望两者具有非常相似的性能。
您可以查看执行计划,看看是否有任何差异。
TABLE : 员工 (id,mid,join_date)
问题 - 找出所有在其经理之前加入的员工
查询 1:
Select E1.id
From Employee E1 JOIN Employee E2 ON E1.mid=E2.id
Where E1.join_date < E2.join_date
查询 2:
Select E1.id
From Employee E1
Where E1.join_date < (Select E2.join_date From Employee E2 where E2.id=E1.mid)
哪一个是正确的?如果两者都正确,那么性能如何?
他们都是正确的。
性能问题需要在您的系统数据上进行测试。但是,对于 employee(id)
上的主键,我希望两者具有非常相似的性能。
您可以查看执行计划,看看是否有任何差异。