有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java通过ApachePOI(XSSF用户模型api)和jdbc批处理提高了性能

请提出一些改进性能的方法

实际上我们的项目有以下提到的过程

  1. 加载庞大的xlsx文件,并使用sax解析器xml验证该值

  2. 若验证成功,则将存储到数据库中

这是例行程序。每天,我们都会加载更多的文件

目前正在使用以下技术:

  1. 使用ApachePOI(XSSF用户模型api)读取大文件,并使用sax解析器通过xml进行验证
  2. 然后存储到JDBC批处理中并执行它
  3. oracle11g数据库

所以我的问题是,还有什么更好的方法可以提高性能

请给我一些建议


共 (1) 个答案

  1. # 1 楼答案

    如果您和mi的主要目标是优化整个流程的执行时间,我将开始对xlsx进行分区,以便能够同时处理多个数据块,那么这一部分很简单

    之后,如果数据不依赖于执行顺序,则从并行启动多个进程开始,使用spring批处理或javax。批处理api您可以做到这一点,这将允许您的应用程序更好地扩展,并减少执行时间N个部分,即启动的并发进程数N。每个进程应该只处理一个任务,就像现在一样,我认为您正在做的,但是并行性将提高您的执行时间

    同时,如果您有更多的时间,可以使用csv而不是xlsx来代替ApachePOI,而不必进行转换,以减少更多的时间和内存使用