自定义DB2命令行处理器

时间:2013-01-21 04:17:49

标签: db2

我在java中编写了一个程序,它读取.csv文件并将它们存储到数据库表中。但是存储操作的性能非常慢。当我使用DB2命令行处理器时,性能发生了巨大变化,速度非常快。所以,我正在尝试根据我的要求定制DB2命令行处理器。我在谷歌搜索但我只找到了如何使用它的主题。我想在开始之前明确以下主题。

  1. “DB2命令行处理器”是开源的吗?
  2. 使用哪种编程语言?
  3. 是否有类似DB2命令行处理器的选择,在java中使用开源代码?
  4. 有没有办法从Java程序中调用DB2命令行处理器?

2 个答案:

答案 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环境)