
1 #NSET2: [0, 1, 72]
2 #PRJT2: [0, 1, 72]; exp_num(6), is_atom(FALSE)
3 #BLKUP2: [0, 1, 72]; index_test(TEST)
4 #SSEK2: [0, 1, 72]; scan_type(ASC), index_test(TEST),
scan_range[(60,60,60),(60,60,60)]
这里是直接从索引中调取的结果
二. MATH 不等值,ENGLISH 和 SCIENCE 两列等值例如
select * from "SYSDBA"."TEST" where MATH not in 60 and ENGLISH =
60 and SCIENCE=60;
通过执行计划可以看出并没有调用到索引。
1 #NSET2: [1, 1, 72]
2 #PRJT2: [1, 1, 72]; exp_num(6), is_atom(FALSE)
3 #SLCT2: [1, 1, 72]; (TEST.ENGLISH = 60 AND TEST.SCIENCE = 60
AND TEST.MATH <> 60)
4 #CSCN2: [1, 10000, 72]; INDEX33555484(TEST)
三. MATH 和 ENGLISH 等值,第三列 SCIENCE 不等值,例如:
select * from "SYSDBA"."TEST" where MATH = 60 and ENGLISH = 60 and
SCIENCE not in 60;
执行计划有调用到 index_test 索引查询出 MATH=60 and ENGLISH=60 的所
有值,再从里面选择出 science<>60 的值
1 #NSET2: [0, 1, 72]
2 #PRJT2: [0, 1, 72]; exp_num(6), is_atom(FALSE)
评论