温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

oracle单列索引和组合索引性能测试

发布时间:2020-08-03 21:56:09 来源:网络 阅读:2500 作者:wangguojing609 栏目:关系型数据库

共有两张表t1,t2

t1的表结构

 oracle单列索引和组合索引性能测试

t2的表结构

 oracle单列索引和组合索引性能测试


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、不建任何索引

 oracle单列索引和组合索引性能测试

t1,t2都是全表扫描

2、在t2.a1建索

 oracle单列索引和组合索引性能测试

看查询结果


 oracle单列索引和组合索引性能测试

t1全表扫描,t2范围索引扫描

3、在t2.a1和t1.a3建非唯一索引

 oracle单列索引和组合索引性能测试

4、在t2.a1,t2.a3和t1.a3建非唯一索引

 oracle单列索引和组合索引性能测试


5,在t1.a1,t1.a3建立组合索引,在t2.a3建非唯一索引

select t1.a1,t2.a1 from t1,t2 where t1.a3=t2.a3 and t2.a1='www';

 oracle单列索引和组合索引性能测试

6、在t1,t2的a1和t3列建立组合索引

 oracle单列索引和组合索引性能测试


根据索引的类型与where限制条件的不同,有4种类型的索引扫描:

索引唯一扫描(index unique scan)

索引范围扫描(index range scan)

索引全扫描(index full scan)

索引快速扫描(index fast full scan)


后续逐步完善测试结果!


向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI