我有一项任务是创建一个独立的Java应用程序来执行以下操作:
我目前设计的想法是:
每个线程都有逻辑:
if(getNextJobFromList() != null)
// Prepare and insert the statements in a batch update.
时间是一个非常大的限制因素。
现在问题:
我可以使用Executor框架加快速度吗?在我的伪代码中,线程在其生命周期内保持数据库连接。我可以在Executor框架中执行此操作吗?
还有其他方法可以优化吗?
提前致谢:)
答案 0 :(得分:2)
您可以使用Executor执行此操作。这听起来不是一个好主意,你会用工作来压倒数据库,你的大多数线程都会花时间等待。
我认为你最好在数据库中进行批量导入(如果你使用的是Oracle,那么使用SQL * Loader,其他数据库也有类似的工具),不需要多线程。批量复制速度非常快,它可以关闭约束检查和索引修改,只是捏造数据。它比JDBC快几个数量级,如果你想要速度,你应该检查它。