我在java中编写了一个程序,它读取.csv文件并将它们存储到数据库表中。但是存储操作的性能非常慢。当我使用DB2命令行处理器时,性能发生了巨大变化,速度非常快。所以,我正在尝试根据我的要求定制DB2命令行处理器。我在谷歌搜索但我只找到了如何使用它的主题。我想在开始之前明确以下主题。
答案 0 :(得分:1)
可能值得研究Java程序,运行缓慢可能与您提交数据的频率有关(即您可能以自动提交模式运行(每次插入后提交)。)
每500次插入后提交可能比在每次记录后提交
要快得多有关自动提交的详细信息,请参阅DB2 autocommit
答案 1 :(得分:0)
1)DB2 CLP(命令行处理器)是DB2的一部分。它不是开源的,它包含在所有版本(Express-C,express,工作组,扩展)和Data Server客户端中。最后一个可以免费下载,并安装在所有客户端。
2)使用DB2CLP功能的最佳方法是通过脚本,例如bash脚本或windows脚本。 您也可以从另一个程序调用db2clp,例如java应用程序(运行时)。
3)有开源许可证的数据库的shell,但是,你混合了两件事:一个shell,通常是你输入命令的黑屏。以及从您自己开发的程序中查询数据库的驱动程序。
4)再次,通过运行时,http://docs.oracle.com/javase/6/docs/api/java/lang/Runtime.html
最后,最好是使用JDBC驱动程序,以便直接执行操作,而不是使用很多层。您必须检查Java代码,可能读取效率不高。另外,请检查DB2 Java驱动程序的属性。
还有一件事,如果你想要最好的,尝试使用LOAD在数据库中插入数据。它不执行任何日志。您可以从Java应用程序调用LOAD(记得在执行任何命令之前加载db2环境)