> 데이터 베이스 > MySQL 튜토리얼 > Oracle中不使用索引和使用索引的效果比较分析

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

WBOY
풀어 주다: 2016-06-07 17:27:36
원래의
1078명이 탐색했습니다.

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选择了全表扫描而不是索引扫描。

linux

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
최신 이슈
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿