现在有张表tchest,里面的数据是9999999,表中的fsrc都是1234,表中的fcode是主键,
我两条SQL语句:
一、select max(c.fcode) from tchest c;
二、select max(c.fcode) from tchest c where c.fsrc = '1234';
从数据上来看,这个where条件加不加都是可以的用第一条语句执行速度很快,零点几秒就可以了,
用第二条语句执行的时候,半分钟都没有结果出来。我看了下执行计划,
第一条语句写的是INDEX FULL SCAN(MIN/MAX);
第二条语句写的是TABLE ACCESS FULL我就算在fsrc上加索引,执行效果还是一样的……哪位来告诉俺一下,这是咋回事呀
我两条SQL语句:
一、select max(c.fcode) from tchest c;
二、select max(c.fcode) from tchest c where c.fsrc = '1234';
从数据上来看,这个where条件加不加都是可以的用第一条语句执行速度很快,零点几秒就可以了,
用第二条语句执行的时候,半分钟都没有结果出来。我看了下执行计划,
第一条语句写的是INDEX FULL SCAN(MIN/MAX);
第二条语句写的是TABLE ACCESS FULL我就算在fsrc上加索引,执行效果还是一样的……哪位来告诉俺一下,这是咋回事呀
解决方案 »
- oralce 怎么读取access表数据?????
- 请教一个统计的SQL语句
- 求一个开源的sql客户端
- Linux下如何重启Oracle数据库服务和监听器服务?详见内容,求求大家了,帮帮我好吗!!
- 怎样查看某段时间内oracle的操作日志(linux7.3下的oracle 8.1.6),要详细操作方法。急!!!!!!!!!高分相送
- 到哪里下载ORACLE FOR UNIX5.06的ORACLE版本?
- 关于select decode('COL1','COL1',(select 'VALUE1' from DUAL),NULL) from DUAL
- 请教SQL高手。这种算法的SQL如何写?
- 求救:向oracle中一个BLOB字段插入一个图片的方法,出错信息如下,源码如下,高分给第一个告知原因的人
- 关于批处理的提问
- 传入字符分隔的一个字符串,如何据此插入多条数据?
- oracle日期函数
第二条语句写的是TABLE ACCESS FULL
第二条语句写的是TABLE ACCESS FULL
二.既然你的表字段fsrc都是1234,那么你的条件where c.fsrc = '1234';还有意义么?岂不是每行
数据的内容都满足你的条件?即使你在这个字段上加了一个索引,索引里面也只是只有一条1234而已,所以
执行计划就全表Access了
补充一点,SQL文执行顺序是从右往左的