客户端传几千个公司代码上来,然后根据公司代码找出相应的公司信息,目前有这么几种办法:
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 编辑 ]
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/