共有两张表t1, t2
t1的表结构
t1和t2通过
插入t1值(“www”、“aaa”、“bbb”);
插入t1值(“www1”、“aaa1”、“bbb1”);
插入t1值(“www2”、“aaa2”、“bbb2”);
插入t1值(“www3”、“aaa3”、“bbb3”);
t2同理构建
插入t1 select * from t1;
插入t2 select * t2;
构建数据共:
t1共262144行
t2共524288行
为保证查询测试准确(不受缓存结果的影响)
在执行下一次查询前都会执行以下语句
ALTER SYSTEM FLUSH SHARED_POOL(清空语句,执行计划缓存)
ALTER SYSTEM 冲洗,BUFFER_CACHE(清空数据缓存)
选择t1.a1, t2。a1从t1, t2 t1.a3=t2。a3和t2.a1=皐ww”;
选择t1.a1, t2。a1使用(a3)从t1和t2 t2.a1=皐ww”;
我们先用
选择t1.a1, t2。a1从t1, t2 t1.a3=t2。a3和t2.a1=皐ww”;
测试
解释计划选择t1.a1, t2。a1从t1, t2 t1.a3=t2。a3和t2.a1=皐ww”;
SELECT * FROM TABLE (DBMS_XPLAN.DISPLAY);,
1,不建任何索引
t1, t2都是全表扫描
2,在t2。a1建索
t1全表扫描,t2范围索引扫描
3,在t2.a1和t1。a3建非唯一索引
5,在t1.a1, t1.a3建立组合索引,在t2。a3建非唯一索引
选择t1.a1, t2。a1从t1, t2 t1.a3=t2。a3和t2.a1=皐ww”;
根据索引的类型与地方限制条件的不同,有4种类型的索引扫描:
索引唯一扫描(索引独特的扫描)
索引范围扫描(索引范围扫描)
索引全扫描(索引全扫描)
索引快速扫描(索引快速全扫描)