我这里有段代码原来是用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, 是不是这个原因呢?
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, 是不是这个原因呢?
解决方案 »
- 【求助,急,在线等】 如何让Data类型的变量在JTable表格中显示为XXXX-XX-XX格式?
- 如何能让代码变成软件?
- 请教大家个 scjp认证里面的试题(标题要长.-------------------------------------------------------)
- Thread.currentThread().getContextClassLoader().loadClass有什么用?
- 急求大家帮忙下啊~!我在做课程设计,可是题目不是很明白,大家帮帮我啊~!谢谢了啊!急^
- 请教JComboBox和数据库的刷新问题,thanks!
- 给定一个URL如http://www.sina.com.cn如何列举出它下面的所有文件?
- AWT中如何实现swing里JTabbedPane的功能(请高手指教)
- 初学者有关异常的问题
- 有jb7的书籍或文档下载吗?(或jb6)
- java做基数排序-用java的数组使劲编简单还是用c的指针做简单?
- 急!!!XSL转换问题
LZ给的例子好像是有规律的,都比较接近,24## / 25##
可以找出最大最小值用一个between .. and ..把该取的数据一次取出来再处理一下呢?
用JDBC优化效果不大
1>.在条件表达式中经常用到的不同值较多的列上建立索引2>.在不同值少的列上不要创建索引
比如:在员工表的[性别]列上只有“男”或者“女”两个不同值,如果建立索引,不但不会提高查询效率,反而会降低更新速度3>.在经常进行连接,但是没有指定为外键的列上建立索引4>.在频繁进行排序或分组的列上建立索引5>.在连接查询中,对表的顺序存取可能对查询效率产生致命的影响。避免这种情况的主要方法就是对连接的列进行索引。
在一个跟采用何种DB有关的。