Java 保持通过JDBC插入大量数据的最佳方法。批插入还是存储过程?
我正在使用Java 保持通过JDBC插入大量数据的最佳方法。批插入还是存储过程?,java,sql,sql-server,spring,jdbc,Java,Sql,Sql Server,Spring,Jdbc,我正在使用Spring通过JDBC连接到sqlserver2008r2 我所需要的就是尽可能快地将大量数据插入数据库中的表中。我想知道哪种方式更好: 使用Spring批量插入 在数据库中创建存储过程并在Java端调用它 哪一个更好?这取决于存储的两件事生产者将占用数据库时间,而批处理将占用程序端的时间。因此,取决于你更关心什么,这实际上取决于你自己。我更喜欢批处理,因为它可以使数据库不受时间限制,从而减少可能发生的错误。希望这有帮助 springbatch是一个优秀的框架,它可以用作数据库的ET
Spring
通过JDBC
连接到sqlserver2008r2
我所需要的就是尽可能快地将大量数据插入数据库中的表中。我想知道哪种方式更好:
Spring
批量插入哪一个更好?这取决于存储的两件事生产者将占用数据库时间,而批处理将占用程序端的时间。因此,取决于你更关心什么,这实际上取决于你自己。我更喜欢批处理,因为它可以使数据库不受时间限制,从而减少可能发生的错误。希望这有帮助 springbatch是一个优秀的框架,它可以用作数据库的ETL(提取、转换、加载)工具 Spring batch将任何导入作业分为3个步骤: 1.读取:从任何源读取数据。它可以是任何其他数据库、任何文件(XML、CSV或任何其他文件)或任何其他文件 2.处理:处理输入数据,验证数据,并将其转换为所需的对象。 3.保存:将数据保存到数据库或任何自定义文件格式 当您需要具有重启/恢复功能的长时间运行作业时,Spring批处理非常有用。 此外,任何直接数据库导入工具(如针对Oracle的impdp)都要慢得多。Spring批处理将其状态保存在数据库中,因此这是一种开销,并且会占用很长的时间。但是,您可以攻击spring批处理,使其不在DB中保存状态,但它会导致重新启动/恢复功能的损失 所以,如果速度是您的首要要求,那么您应该选择一些特定于数据库的选项。
但是,如果您需要进行一些验证和/或处理,SpringBatch是一个很好的选择,您只需要正确地配置它。此外,Spring batch还提供了可扩展性和数据库独立性。您可能有更好的机会在上获得更全面的答案。对不起,我说的是Spring JDBC,而不是Spring batch