<b>为什么有时Oracle数据库不用索引来查找数据?</b>[Oracle防范]
本文“<b>为什么有时Oracle数据库不用索引来查找数据?</b>[Oracle防范]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
当你应用SQL语言,向数据库公布一条查询语句时,ORACLE将伴随产生一个"履行筹划",也就是该语句将通过何种数据搜索筹划履行,是通过全表扫描、还是通过索引搜索等别的方法.搜索筹划的选用与ORACLE的优化器息息相关.
SQL语句的履行步骤
一条SQL语句的处理历程要经过以下几个步骤.
1 语法解析 解析语句的语法能否符合标准,衡量语句中各表达式的意义.
2 语义解析 查抄语句中触及的全部数据库对象能否存在,且用户有呼应的权限.
3 视图转换 将触及视图的查询语句转换为呼应的对基表查询语句.
4 表达式转换 将复杂的SQL表达式转换为较简单的等效衔接表达式.
5 挑选优化器 差别的优化器普通产生差别的"履行筹划"
6 挑选衔接方法 ORACLE有三种衔接方法,对多表衔接ORACLE可挑选得当的衔接方法.
7 挑选衔接次序 对多表衔接ORACLE挑选哪一对表先衔接,挑选这两表中哪个表做为源数据表.
8 挑选数据的搜索途径 按照以上条件挑选符合的数据搜索途径,如是选用全表搜索还是操纵索引或是其他的方法.
9 运行"履行筹划"
ORACLE的优化器
ORACLE有两种优化器:基于法则的优化器(RBO, Rule Based Optimizer),和基于代价的优化器(CBO, Cost Based Optimizer).
RBO自ORACLE 6版以来被采取,有着一套严峻的利用法则,只要你按照它去写SQL语句,无论数据表中的内容怎样,也不会影响到你的"履行筹划",也就是说对数据不"敏感",ORACLE公司已经不再发展这种技术了.
以上是“<b>为什么有时Oracle数据库不用索引来查找数据?</b>[Oracle防范]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |