oracle单列索引和组合索引性能测试
共有两张表t1,t2
公司主营业务:成都网站设计、成都网站建设、移动网站开发等业务。帮助企业客户真正实现互联网宣传,提高企业的竞争能力。创新互联是一支青春激扬、勤奋敬业、活力青春激扬、勤奋敬业、活力澎湃、和谐高效的团队。公司秉承以“开放、自由、严谨、自律”为核心的企业文化,感谢他们对我们的高要求,感谢他们从不同领域给我们带来的挑战,让我们激情的团队有机会用头脑与智慧不断的给客户带来惊喜。创新互联推出东城免费做网站回馈大家。
t1的表结构
t2的表结构
t1和t2通过
insert into t1 values ('www','aaa','bbb');
insert into t1 values ('www1','aaa1','bbb1');
insert into t1 values ('www2','aaa2','bbb2');
insert into t1 values ('www3','aaa3','bbb3');
t2同理构建
insert into t1 select * from t1;
insert into t2 select * from t2;
构建数据共:
t1共262144行
t2共524288行
为保证查询测试准确(不受缓存结果的影响)
在执行下一次查询前都会执行以下语句
ALTER SYSTEM FLUSH SHARED_POOL (清空语句,执行计划缓存)
ALTER SYSTEM FLUSH BUFFER_CACHE (清空数据缓存)
select t1.a1,t2.a1 from t1,t2 where t1.a3=t2.a3 and t2.a1='www';
select t1.a1,t2.a1 from t1 join t2 using(a3) where t2.a1='www';
我们先用
select t1.a1,t2.a1 from t1,t2 where t1.a3=t2.a3 and t2.a1='www';
测试
explain plan for select t1.a1,t2.a1 from t1,t2 where t1.a3=t2.a3 and t2.a1='www';
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);
1、不建任何索引
t1,t2都是全表扫描
2、在t2.a1建索
看查询结果
t1全表扫描,t2范围索引扫描
3、在t2.a1和t1.a3建非唯一索引
4、在t2.a1,t2.a3和t1.a3建非唯一索引
5,在t1.a1,t1.a3建立组合索引,在t2.a3建非唯一索引
select t1.a1,t2.a1 from t1,t2 where t1.a3=t2.a3 and t2.a1='www';
6、在t1,t2的a1和t3列建立组合索引
根据索引的类型与where限制条件的不同,有4种类型的索引扫描:
索引唯一扫描(index unique scan)
索引范围扫描(index range scan)
索引全扫描(index full scan)
索引快速扫描(index fast full scan)
后续逐步完善测试结果!
本文名称:oracle单列索引和组合索引性能测试
URL标题:http://myzitong.com/article/peepoi.html