求助,sql语句(in-list 或or类)优化,超长的语句

客户端传几千个公司代码上来,然后根据公司代码找出相应的公司信息,目前有这么几种办法:
1.select * from tab_name where company_code in(...),由于in是长度事故有限制的,所以写N个这样的语句,然后union all
时间为4S左右,加了/*+rule*/提示无效
2.select * from tab_name where company_code instr(...),由于in是长度事故有限制的,所以写N个这样的语句,然后union all
时间跟上面差不多,加了/*+rule*/提示无效
3.利用dbms_lob(clob,string)不用写union all但效率更差,32S
4.打算用临时表的办法,先把几千个公司代码插入到临时表,然后再用exists,
5.不知道有没有其他的好办法?
select count(*) from STK035
42354
这里我不想用index scan,因为记录数比较大

[ 本帖最后由 microsoft_fly 于 2008-7-25 20:00 编辑 ]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/751051/viewspace-731730/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/751051/viewspace-731730/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值