子查询性能比较
1.单行子查询
只返回一行.使用单行比较操作符
SELECT last_name
FROM employees
WHERE salary >
(SELECT salary
FROM employees
WHERE last_name = 'Abel');
Salary上增加索引会带来性能提升.
2.多行子查询
返回多于一行.使用多行比较操作符
SQL> ed
已写入 file afiedt.buf
1 SELECT employee_id, last_name
2 FROM employees
3 WHERE salary in
4 (SELECT MIN(salary)
5 FROM employees
6* GROUP BY department_id)
SQL> /
3.子查询与两表关联查询性能比较
子查询循环关联
去循环全表扫描父表A,然后在子表B上有个建了索引的字段COL,用A.COL=B.COL做关联
两表关联排序合并
A表全表扫描,排序COL,B表全表扫描,排序COL,然后做关联A.COL=B.COL