ITPUB论坛 » Oracle开发 » SQL优化
报名申请微软有影响力专家
2008-7-4 09:35 棉花糖ONE
晕啊,这样的in也改exists,你们的想法真丰富啊

2008-7-4 10:33 mychary
[quote]原帖由 [i]sxlcom[/i] 于 2008-7-3 12:58 发表 [url=http://www.itpub.net/redirect.php?goto=findpost&pid=10840826&ptid=1015964][img]http://www.itpub.net/images/common/back.gif[/img][/url]
请问以下语句如何优化:


CREATE TABLE aa_001
   (         ip VARCHAR2(28),
        name VARCHAR2(10),
        password VARCHAR2(30)           )

select * from aa_001 where ip in (1,2,3) order by name desc;
--目前表中记录有一千多万条左右 [/quote]
如果 ip 是主索引列,并且返回结果集较少,建议
select * from aa_001 where ip in ('1','2','3') order by name desc;
否则强制用全表扫描

2008-7-4 10:43 haibo_li
关注下

2008-7-4 10:48 guohbest
对于这种千万级的数据量 ,建议使用表分区来提升操作数据的效率!

2008-7-5 13:45 ispu
这表没索引没分区也没啥优化的,多跑一次就优化了:)

2008-8-13 19:26 konger6967
该优化例子的具体讨论:

  [url]http://www.cnblogs.com/zping/archive/2008/08/13/1266743.html[/url]

2008-11-12 15:35 qingyun
[quote]原帖由 [i]sxlcom[/i] 于 2008-7-3 13:06 发表 [url=http://www.itpub.net/redirect.php?goto=findpost&pid=10840930&ptid=1015964][img]http://www.itpub.net/images/common/back.gif[/img][/url]
用in 不就不能使用索引了吗 [/quote]

谁说的,用不用到索引,是要看执行计划的。
据我经验,除了全表扫描,很多时候in的效率远远超过exists ,而且用in的可读性比较好;

反正具体那个效率高,要结合具体情况,做实践分析。反正我个人倾向于用in.

页: 1 [2]
查看完整版本: SQL优化


Powered by ITPUB论坛