sql优化
from后的表名
oracle的解析器按照从右到左的顺序处理from子句中的表名
因此from子句中写在最后的表将被最先处理
在from 子句中包含多个表的情况下,你必须选择记录条数最少的表放在最后
例如:
表 TAB1 16384 条记录
表 TAB2 1 条记录
选择 TAB2作为基础表 (最好的方法)select count(*) from tab1 left join tab2 执行时间 0.96秒
选择 TAB2作为基础表 (不佳的方法)
select count(*) from tab2,tab1 执行时间 26.09秒
将可以过滤掉最大数量记录 的条件
写在where子句的末尾
表中loanacno=ln001能匹配到4条数据
表中currsign=‘CNY‘能匹配到15000条数据
select * from F_LN_LOAN_INFO
where loanacno=‘ln001‘
and currsign=‘CNY‘
select * from F_LN_LOAN_INFO
where currsign=‘CNY‘
and loanacno=‘ln001‘
解释器先执行后面语句
第一种方式会先匹配currsign=‘CNY‘,找到了15000条数据,然后会在这15000条数据中进行loanacno=‘ln001‘的查找
第二种方式会先匹配loanacno=‘ln001‘,找到了4条数据,然后会在这4条数据中进行currsign=‘CNY‘的查找
相关推荐
vitasfly 2020-11-12
gsmfan 2020-07-26
明月清风精进不止 2020-07-05
FORYAOSHUYUN 2020-07-05
URML 2020-07-04
minggehenhao 2020-06-21
hungzz 2020-06-16
ribavnu 2020-11-16
要啥自行车一把梭 2020-11-12
ILVNMM 2020-09-19
zycchun 2020-10-16
康慧欣 2020-09-10
liuweiq 2020-09-09
silencehgt 2020-09-07
sunnyxuebuhui 2020-09-07
西瓜皮儿的皮儿 2020-09-07
李轮清 2020-09-15
lifeison 2020-08-18
cyhgogogo 2020-08-18