Vinyeah 2009-06-17 15:28
浏览 293
已采纳

JProfiler使用疑问,时间都用到哪里去了???

系统用的是SSH框架,其中有一个excel导入数据的方法,导入500条数据,每条平均0.1秒
如果导入量增大, 每条平均值也会增大.到了导入3000条的时候,每条平均0.75秒.增长了近7倍!!

导入过程大体是这样的.一次性把数据从excel提取,然后写入数据库临时表. commit.
对临时表的每条数据启动一个事务,导入到正式表,同时写相关流程表.每条数据一次commit

今天用Jprofiler5.14测试了下.图片是在"CPU Views"中得到的调用方法耗时统计.

doParseShipmentImprot方法耗时1722s,占用cpu百分比为94.2%, 但是我把这个方法下所有列出都项占用的时间相加,只有700多秒.
剩下的人1000多秒时间去哪里了?

附件中的tar文件是从Cpu Views导出的文件

请熟悉JProfiler的大大们帮忙看看...是不是偶不会用.

  • 写回答

3条回答 默认 最新

  • wanghaolovezlq 2009-06-17 16:51
    关注

    对临时表的每条数据启动一个事务,
    几千条数据插入自然会很慢,一个数据库连接支持最大的事务数也是有限,

    1000多秒应该都用在等待事务提交,得到连接,开启事务的过程去了,

    你应该使用批量提交数据,比如每20条数据或50条数据就提交一次事务,性能会有很大提升

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?