在javaeye的论坛上问了居然没一人回复,回来请教CSDN的各位高手,prepareStatement中使用in 的问题
我这里有段代码原来是用prepareStatement的批处理来处理一批sql语句:
select p.datatype, p.userfieldid, u.datetimevalue, u.intvalue, u.stringvalue, u.decimalvalue, u.notes from tr_userfield p, tr_requestvalue u where p.userfieldid = u.userfieldid and u.userfieldid in (6580,6561,6562) and u.requestid = ?
在执行的时候循环赋值,我想提高下查询的效率,所以用IN来替换:
select u.requestid,p.datatype, p.userfieldid, u.datetimevalue, u.intvalue, u.stringvalue, u.decimalvalue, u.notes from tr_userfield p, tr_requestvalue u where p.userfieldid = u.userfieldid and u.userfieldid in (6580,6561,6562) and u.requestid in(2540,2541,2560,2406,2408,2411,2412,2414,2416,2417,2420,2424,2423,2428,2435,2429,2430,2431,2433,2434,2436,2399,2437,2444,2438,2440,2441,2660,2661,2700,2449,2450,2454,2641,2402,2600,2419,2458,2680,2620,2461,2463,2464,2465,2640,2720,2580,2468,2469,2470,2418,2473,2474,2446,2451,2453,2456,2581)order by u.requestid
但是执行之后发现时间并没有减少,是不是prepareStatement的批处理效率已经很高了不能再优化了?用
IN的SQL用了order by, 是不是这个原因呢?