首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

如何写查询速度快

2013-02-25 
怎么写查询速度快?type列有 1,2,3 三个值,无索引。现需要卡1,2取数,三种写法:第一种:type3第二种:type in

怎么写查询速度快?
type列有 1,2,3 三个值,无索引。
现需要卡1,2取数,三种写法:
第一种:type<>3
第二种:type in (1,2)
第三种:type=1 or type=2
哪种写法查询快?为什么?

菜鸟求问简单问题,望不吝赐教,若有更优的写法请说明。
[解决办法]
一般说来  查询花费时间由大到小排序 2 > 3 > 1 

[解决办法]
在CBO的模式下,2和3会转化成同样的路径(11g环境)
[解决办法]
中间用union all连接
select count(*) from 
( select * from 表名 where type=1 
union all
select * from 表名 where type=2 ) 

[解决办法]
如果1经常被读到
第三种:type=1 or type=2
这是比较快的
type=2优化器是不会再去进行逻辑判断

热点排行