执行计划SQL写法差异改变之二_rownum分页
环境准备:
create table t as select * from dba_objects;
语句1:
select * from (select t.*,rownum as rn from t t) a where a.rn>=1 and a.rn<=10;
语句2:
select * from (select t.*,rownum as rn from t t where rownum<=10) a where a.rn>=1;
说明:语句1和语句2在写法上是等价的。但是语句2走的是COUNT STOPKEY执行计划,请分别观察语句1和语句2的执行计划中的 A-Rows部分,代表的是sql实际扫描的行数。效率差距很大。语句2更优。