您的位置:首页 > 其它

CBO模式下优化器采取全表扫描

2009-02-26 17:26 260 查看
(5)CBO模式下表很久没分析,表的增长明显,优化器采取了全表扫描。


SQL> select * from test.testindex where a like '1%';


A B


---- ----------


1 2


1 1


10 10


11 11


12 12


13 13


14 14


15 15


16 16


17 17


18 18


19 19


100 100


已选择13行。


Execution Plan


----------------------------------------------------------


0 SELECT STATEMENT Optimizer=CHOOSE (Cost=1 Card=13 Bytes=52)


1 0 TABLE ACCESS (FULL) OF 'TESTINDEX' (Cost=1 Card=13 Bytes=52)


(表一共102行,选择比例为13/102>10%,优化器选择了全表扫描)


――――――――――――――――――――――――――――――――――


增加表行数


SQL> declare i number;


2 begin


3 for i in 200 .. 1000 loop


4 insert into test.testindex values (to_char(i),i);


5 end loop;


6 end;


7 /


PL/SQL 过程已成功完成。


SQL> commit;


提交完成。


SQL> select count(*) from test.testindex;


COUNT(*)


----------


903


SQL> select * from test.testindex where a like '1%';


A B


---- ----------


1 2


1 1


10 10


11 11


12 12


13 13


14 14


15 15


16 16


17 17


18 18


19 19


100 100


1000 1000


已选择14行。


Execution Plan


----------------------------------------------------------


0 SELECT STATEMENT Optimizer=CHOOSE (Cost=1 Card=13 Bytes=52)


1 0 TABLE ACCESS (FULL) OF 'TESTINDEX' (Cost=1 Card=13 Bytes=52)


(表一共903行,选择比例为14/903<5%,优化器选择了全表扫描,选择路径是错误的)


―――――――――――――――――――――――――――――


给表做分析




SQL> analyze table test.testindex compute statistics for table for all indexed c


olumns for all indexes;


表已分析。


SQL> select * from test.testindex where a like '1%';


A B


---- ----------


1 2


1 1


10 10


100 100


1000 1000


11 11


12 12


13 13


14 14


15 15


16 16


17 17


18 18


19 19


已选择14行。


Execution Plan


----------------------------------------------------------


0 SELECT STATEMENT Optimizer=CHOOSE (Cost=4 Card=24 Bytes=120)


1 0 TABLE ACCESS (BY INDEX ROWID) OF 'TESTINDEX' (Cost=4 Card=


24 Bytes=120)


2 1 INDEX (RANGE SCAN) OF 'IND_COLA' (NON-UNIQUE) (Cost=2 Ca


rd=24)


(经过分析后优化器选择了正确的路径,使用了ind_cola索引)


――――――――――――――――――――――――――――――――――

小结

这篇文章介绍了oracle数据库中的各种索引,通过分析它们的结构,我们知道了它们的特点和应用范围,同时介绍了如何去避免索引失效,希望对大家有所帮助。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: