表的主要连接方法
-
排序合并连接 (Sort Merge Join, SMJ)
适用于大型数据集,先对两个表排序后进行合并操作。
-
嵌套循环连接 (Nested Loops, NL)
使用索引在一个表中查找匹配行,适合小型表与索引列。
-
哈希连接 (Hash Join, HJ)
通过哈希算法连接较大的无序表。
-
笛卡儿乘积 (Cartesian Product)
通常用于测试或无连接条件时产生,资源消耗较大。
SQL执行过程中的关键运算符
-
sort:排序操作,如
order by
和group by
。排序会消耗大量资源,需谨慎使用。 -
filter:用于过滤数据,如
not in
或min
函数等。过滤可以消除分区,但某些情况会增加查询复杂度。 -
view:内联视图会直接从派生视图中选择数据。当视图无法合并至主查询时,则作为投影视图。
示例SQL:
EXPLAIN PLAN FOR
SELECT ename, tot
FROM emp,
(SELECT empno, SUM(empno) tot
FROM big_emp
GROUP BY empno) tmp
WHERE emp.empno = tmp.empno;