ITPUB??ì3
12月微软Hyper-V虚拟化沙龙主题征集
ITPUB论坛 » Oracle开发 » 那位高手给看一下这条sql语句~~很长时间~~??

标题: 那位高手给看一下这条sql语句~~很长时间~~??
离线 lio_sy
中级会员



精华贴数 1
个人空间 0
技术积分 1111 (1648)
社区积分 23 (7198)
注册日期 2001-11-11
论坛徽章:1
授权会员     
      

发表于 2002-4-4 19:02 
那位高手给看一下这条sql语句~~很长时间~~??

两个表的记录有10000多条吧。


SELECT a.a01,a.a02,NVL(a.a201,0)/NVL(b.a201,0)
FROM  TB_JP_JA2001_DATA a,TB_JP_JA2000_DATA b
WHERE exists((select a01 from tb_jp_ja2001_data
where djdz like  '22%' AND INSTR('3|4',a14)=0)
intersect (select a01 from tb_jp_ja2000_data where NVL(a201,0)!=0));


只看该作者    顶部
离线 jlandzpa
版主


精华贴数 29
个人空间 0
技术积分 45963 (15)
社区积分 53595 (10)
注册日期 2001-10-12
论坛徽章:16
现任管理团队成员ITPUB元老授权会员生肖徽章2007版:牛ITPUB新首页上线纪念徽章 
      

发表于 2002-4-4 19:45 
Re: 那位高手给看一下这条sql语句~~很长时间~~??

因为使用了:exist,函数,intersect;
看看能否避免.

QUOTE:
最初由 lio_sy 发布
两个表的记录有10000多条吧。


SELECT a.a01,a.a02,NVL(a.a201,0)/NVL(b.a201,0)
FROM  TB_JP_JA2001_DATA a,TB_JP_JA2000_DATA b
WHERE exists((select a01 from tb_jp_ja2001_data
where djdz like  '22%' AND INSTR('3|4',a14)=0)
intersect (select a01 from tb_jp_ja2000_data where NVL(a201,0)!=0));





__________________
my blog: http://blog.itpub.net/jlandzpa
mail: “id”@itpub.net

注意: [投资理财版] 业已提供上证指数菠菜,欢迎参与 :)

[头像] 黑木明纱 Meisa Kuroki  :)
只看该作者    顶部
在线/呼叫 biti_rainy
人生就是如此



精华贴数 38
个人空间 0
技术积分 111199 (4)
社区积分 11832 (132)
注册日期 2001-12-12
论坛徽章:41
现任管理团队成员ITPUB长老会成员ITPUB元老年度论坛发贴之星年度论坛发贴之星ITPUB北京九华山庄2008年会纪念徽章
管理团队2007贡献徽章参与2007年甲骨文全球大会(中国上海)纪念ITPUB北京香山2007年会纪念徽章管理团队2006纪念徽章会员2007贡献徽章会员2006贡献徽章

发表于 2002-4-4 20:24 
应该结合业务逻辑和表

想办法避免子查询和集合操作

希望可以使用表连接或者外连接来解决


__________________
眼界决定边界,态度决定高度
blog:
人生就是如此
只看该作者    顶部
离线 至尊月
最酷的土人



精华贴数 1
个人空间 0
技术积分 592 (3274)
社区积分 679 (1213)
注册日期 2001-12-2
论坛徽章:3
ITPUB元老会员2006贡献徽章授权会员   
      

发表于 2002-4-4 21:12 
可以将intersect改成 and a01 in (select a01 from tb_jp_ja2000_data where NVL(a201,0)!=0)


__________________
要做好工作,先学会做人。msn:raofuhua@hotmail.com
只看该作者    顶部
离线 Tom Zhang
老会员



精华贴数 1
个人空间 0
技术积分 1268 (1395)
社区积分 663 (1226)
注册日期 2001-10-15
论坛徽章:3
ITPUB元老会员2006贡献徽章授权会员   
      

发表于 2002-4-5 08:22 
Re: Re: 那位高手给看一下这条sql语句~~很长时间~~??



QUOTE:
最初由 jlandzpa 发布
因为使用了:exist,函数,intersect;
看看能否避免.


可我看ORacle资料(OCP)的时候,说Exists比IN效率要高些,是这样吗?


__________________
没了
只看该作者    顶部
在线/呼叫 biti_rainy
人生就是如此



精华贴数 38
个人空间 0
技术积分 111199 (4)
社区积分 11832 (132)
注册日期 2001-12-12
论坛徽章:41
现任管理团队成员ITPUB长老会成员ITPUB元老年度论坛发贴之星年度论坛发贴之星ITPUB北京九华山庄2008年会纪念徽章
管理团队2007贡献徽章参与2007年甲骨文全球大会(中国上海)纪念ITPUB北京香山2007年会纪念徽章管理团队2006纪念徽章会员2007贡献徽章会员2006贡献徽章

发表于 2002-4-5 09:14 
说Exists比IN……

基本上是这样,但总的来说还是不高
应该考虑表连接或者union all


__________________
眼界决定边界,态度决定高度
blog:
人生就是如此
只看该作者    顶部
 
    

相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问