以下查询之间有什么区别
Select E.EmployeeCode,E.Name,D.DepartmentCode,D.DepartmentName
From Employee E
inner join Department D on D.DepartmentID=E.DepartmentID
Where e.EmployeeType='Developer'
Vs的
Select E.EmployeeCode,E.Name,D.DepartmentCode,D.DepartmentName
From Employee E
inner join Department D on D.DepartmentID=E.DepartmentID And e.EmployeeType='Developer'
我在性能方面提出要求。 以上如何使用表格中的大量数据查询性能
答案 0 :(得分:3)
对于INNER JOIN
,没有区别。每个查询的执行计划都是相同的。
第一个计划是查询:
Select E.EmployeeCode,E.Name,D.DepartmentCode,D.DepartmentName
From Employee E
inner join Department D on D.DepartmentID=E.DepartmentID
Where e.EmployeeType='Developer'
第二个计划是查询:
Select E.EmployeeCode,E.Name,D.DepartmentCode,D.DepartmentName
From Employee E
inner join Department D on D.DepartmentID=E.DepartmentID And e.EmployeeType='Developer'
因此,任一查询的性能都是相同的。
对于“巨大”数据,您可能需要在WHERE
和JOIN
条件中使用的列上的索引,具体取决于这些列中值的唯一性。在屏幕截图中的查询计划中,您可以看到SQL Sever正在执行表扫描,因此您可能希望更改它。