跳转到主内容
新派编程网 - 新潮编程理念,全新技术课堂!

Oracle中不使用索引和使用索引的效果比较分析

Oracle中测试不使用索引和使用索引的效果比较分析,啥也不用说了,有图有真相。在本次试验中,体现的Oracle中影响数据存取效率的oracle中测试不使用索引和使用索引的效果比较分析,啥也不用说了,,有图有真相。

1.创建测试数据库,再先批量插入数据:

SQL> create table StudentInformation(id number(20) not null primary key,name varchar2(10) not null,sex varchar2(2),address varchar2(20),hobby varchar(20));declare maxrecords constant int:=180000;i int :=1009;begin for i in 120000..maxrecords loop insert into STUDENTINFORMATION("ID","NAME",SEX,ADDRESS,HOBBY) values(i,TO_CHAR('99'+i),'end loop;dbms_output.put_line('成功录入数据!

');commit;end;如此插入大量数据,修改address

2.测试环节:

创建索引:

SQL> CREATE INDEX index_address_hobby ON STUDENTINFORMATION(address,hobby);

分析表和索引:

SQL>analyze table STUDENTINFORMATION compute statistics for table for all indexes for all columns;SQL> set autotrace traceonly;SQL>set timing on;SQL> select * from StudentInformation where hobby='打篮球';

Oracle使用索引:

SQL> SELECT/**//*+ INDEX (StudentInformation index_address_hobby )*/ * FROM StudentInformation WHERE hobby='打篮球';显示,使用索引导致的逻辑读取数是不使用索引导致的逻辑读的多近200个的逻辑读。因此,Oracle选择了全表扫描而不是索引扫描。

相关文章