案例2
NOT IN的典型查询中NULL值会限制unnest转换,导致优化器无法选择ANTI算法,而走了低效的filter。
(11g中,二者选择的执行计划是一样的)
-
DROP TABLE t1;
-
CREATE TABLE t1 as SELECT * FROM user_objects;
-
DROP TABLE t2;
-
CREATE TABLE t2 AS SELECT * FROM user_objects;
-
SET timing ON
-
SET autotrace traceonly
-
SELECT * FROM t1 WHERE object_id NOT IN (SELECT object_id FROM t2 group by object_id, object_name having count(*) > 1);
-
-
15 rows selected.
-
-
Elapsed: 00:00:00.06
-
-
Execution Plan
-
----------------------------------------------------------
-
Plan hash value: 2948349348

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/17013648/viewspace-1072397/
,如需转载,请注明出处,否则将追究法律责任。