JDBC的效率问题研究和总结

JDBC的效率问题


1. 使用OCI比thin方式要好,但是前者是需要专有驱动程序的。
2. 语句结构一致的情况下,使用事先构造语句,这样会让oracle执行一个计划。
3. 链接过多的时候,使用连接池,这样利用oracle创建一个真链接比利用连接池创建一个假链接消耗资源要大多了。连接池的链接都呆在那里
4. 关于自动提交和禁止提交的问题。前者比后者要快3倍。
5. 关于批处理的问题,批处理是要快10倍,注意批处理和一个计划不是同一件事情。注意其中间包含5--30个句子是最优化的。但是这个批处理的异常是不确定的,难以说明这个处理异常返回的结果是批处理哪条语句造成的批处理的结果。例子如下:
    myprepstatement=myconnection.preparestatement("insert into table"+"(vable) vables (?)");
    //一个计划
    For(int  count=0;count<total_num;count++){
        Myprepstatement.setInt(1,count);
        Myprepstatement.execute();
    }
   
    //一个批处理
    Count2=0;
    For(int  count=0;count<total_num;count++){
        Myprepstatement.setInt(1,count);
        Myprepstatement.addbatch();
    }
    Myprepstatement.execute();
6. ORACLE的批处理比标准JDBC的批处理更加快
7. 结果集的行数的获取的设置。设置越大,性能越好,但是程序占用内存很大。
8. 使用语句缓存;如果是隐式的缓存,则preparestatement对象必须一样,语句也必须一样,且statement不支持,也可以禁止隐式的缓存,而只处理自己需要缓存的语句;

连接池如何用?升级后是否兼容?------用jboss自带的连接池
语句缓存是否可以用到标准jdbc?------应该是可以
批处理的异常问题有没有解决的方法???-----没有看到,那位大拿有办法,联系我jjduys@163.com.   谢谢

 

实验:
批处理和计划处理的效率?
批处理的异常问题,也就是update为0的问题,这个是否有异常??如果没有,结果是什么-----没有异常

statment的批处理和preststment的计划处理二者的效率比较

Preststment  计划   和statment的批量处理,其更新的表中有6万条记录,无索引。基本和一个6万小区的表相同。更新的记录都是4000条,基本和一个omm的小区数相同,记录的时间是数据库执行的时间,其中程序运行的数据处理时间采取直接赋值的办法,可以认为没有时间开销。
自动提交是只是否批量提交。测试用的数据库是sun440上安装的oracle。




 

属性名    中文名称    说明    类型和取值说明    限定      
preststment      计划    1*4000    非自动提交    139532ms      
Preststment      计划    1*4000    自动提交    115584ms      
Preststment      计划    4*1000    非自动提交           
Preststment      计划    4*1000    自动提交    114835ms      
Preststment      计划    100*40    非自动提交           
Preststment      计划    100*40    自动提交    116943ms      
statment    批处理    1*4000    非自动提交    180773ms      
statment    批处理    1*4000    自动提交    156122ms      
statment    批处理    4*1000    非自动提交           
statment    批处理    4*1000    自动提交           
statment    批处理    100*40    非自动提交           
statment    批处理    100*40    自动提交    152389ms      
delAndCreate    计划,批处理    1*4000    删除提交一次;插入自动提交一次    delete time 1846ms  insert time 3614ms      
delAndCreate    计划,批处理    1*4000    全部时间提交一次    delete time 1266ms insert time 6925ms      
delAndCreate    计划,批处理    100*40    全部时间提交一次    delete time 282ms insert time 4219ms
                                                                                                           delete time 1875ms insert time 5954ms
                                                                                                           delete time 1500ms insert time 453ms  commit time 1485ms
       
delAndCreate    计划,批处理    200*20    全部时间提交一次    delete time 281ms,insert time 9533ms      
delAndCreate    计划,批处理    40*100    全部时间提交一次    delete time 1641ms,insert time 2172ms
                                                                                                           delete time 312ms,insert time 8110ms
                                                                                                           delete time 328ms,insert time 4923ms
       
delAndCreate    计划,批处理    20*200    全部时间提交一次    delete time 5437ms,insert time 3298ms     








  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值