
2008-7-3 12:58
sxlcom
SQL优化
请问以下语句如何优化:
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;
--目前表中记录有一千多万条左右
2008-7-3 13:01
dingjun123
你的那个语句1千多万,条件很少,语句简单,
速度应该还可以的,针对你的语句要优化,我只知道两点,一般情况下,特殊情况除外,主要还是自己测试一下:
1.不要用*,应该用具体的名字,可读性强,也明确点,也许能提高性能
2.最好不要用in,用exists
3.应该在相关字段上建个index
[[i] 本帖最后由 dingjun123 于 2008-7-3 13:45 编辑 [/i]]
2008-7-3 13:06
sxlcom
用in 不就不能使用索引了吗
2008-7-3 13:06
wuhuaT
同意LS的
2008-7-3 13:06
sxlcom
而且in中的值个数是不确定的
2008-7-3 13:16
sxlcom
本人也没有实际数据,只是本人对这种写法的性能产生怀念,只是在这种写法上有没有可以改进的方法,关键在于如把in改成其它的写法来提高性能
2008-7-3 13:19
sxlcom
本人也没有实际数据,只是本人对这种写法的性能产生怀念,只是在这种写法上有没有可以改进的方法,关键在于如把in改成其它的写法来提高性能
2008-7-3 13:42
gthboy
这个不用in而用exists该怎么写?谁来示范一下,谢谢
2008-7-3 13:44
junsansi
如果in中只有3条的话,将ip in改exists是不靠谱的~~~
2008-7-3 13:54
sxlcom
关键是in中的值个数不定,难道没有优化的于地了?
2008-7-3 13:59
junsansi
[quote]原帖由 [i]sxlcom[/i] 于 2008-7-3 13:54 发表 [url=http://www.itpub.net/redirect.php?goto=findpost&pid=10841622&ptid=1015964][img]http://www.itpub.net/images/common/back.gif[/img][/url]
关键是in中的值个数不定,难道没有优化的于地了? [/quote]
不定有什么关系?这么简单的语句,从写法上优化的可能性非常低了~~
2008-7-3 14:27
zhangfengh
单纯想从语法上找优化,应该没有多少空间。
结合具体的需求,再想如何优化吧
2008-7-3 15:04
javens
怎麼优化
2008-7-3 15:18
jvkojvko
这样已经很简洁了,没什么优化空间
2008-7-3 15:46
棉花糖ONE
晕了,谁说的in不能使用索引啊,你这个语句如果ip的选择性强的话,可以在ip上创建索引,走inlist
2008-7-3 16:52
codearts
在ip, name上加个组合索引
2008-7-3 17:22
onlyzz
IP上加了索引,走的多半也是index_range_scan,性能也不怎么滴
2008-7-3 17:24
棉花糖ONE
[quote]原帖由 [i]onlyzz[/i] 于 2008-7-3 17:22 发表 [url=http://www.itpub.net/redirect.php?goto=findpost&pid=10844744&ptid=1015964][img]http://www.itpub.net/images/common/back.gif[/img][/url]
IP上加了索引,走的多半也是index_range_scan,性能也不怎么滴 [/quote]
:sweat2: 性能好不好看这个字段的选择性,如果ip in (1,2,3)符合这个3个的就2,3条,你说效率会不高吗
还有为什么说index range scan的效率不咋的:o
2008-7-3 23:35
jiuzhouh
回复 #1 sxlcom 的帖子
俺是新手啊,我是这样将IN 该为EXISTS的,错了请大家不要见笑,多多指教啊...
select * from aa_001
where exists(select ip from aa_001
where ip = 1
or ip = 2
or ip = 3
)
order by name desc
2008-7-4 06:53
eyunbo
看看执行计划就可知道是否使用了索引。
[[i] 本帖最后由 eyunbo 于 2008-7-4 06:55 编辑 [/i]]
页:
[1]
2

Powered by ITPUB论坛