0

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

  1. “DB2 命令行处理器”是开源的吗?
  2. 使用哪种编程语言?
  3. 有没有像 DB2 命令行处理器这样的替代方案,在 java 中有开源代码?
  4. 有没有办法从 java 程序中调用 DB2 命令行处理器?
4

2 回答 2

1

可能值得研究 Java 程序,缓慢的运行时间可能与您提交数据的频率有关(即您可能在自动提交模式下运行(每次插入后提交))。

在每 500 次插入后提交可能比在每条记录后提交要快得多

有关自动提交的详细信息,请参阅DB2 自动提交

于 2013-01-21T07:08:22.360 回答
0

1) DB2 CLP(命令行处理器)是 DB2 的一部分。它不是开源的,它包含在所有版本(Express-C、express、workgroup、extended)和数据服务器客户端中。最后一个可以免费下载并安装在所有客户端中。

2) 使用 os DB2CLP 功能的最佳方式是通过脚本,例如 bash 脚本或 windows 脚本。您还可以从另一个程序(例如 java 应用程序(运行时))调用 db2clp。

3)有开源许可证的数据库外壳,但是,你混合了两件事:一个外壳,通常是一个黑屏,你可以在其中键入命令。还有一个驱动程序可以从自己开发的程序中查询数据库。

4) 同样,通过运行时,http://docs.oracle.com/javase/6/docs/api/java/lang/Runtime.html

最后,最好是使用 JDBC 驱动程序,以便直接执行操作,而不是使用很多层。您必须检查您的 Java 代码,可能阅读效率不高。此外,检查 DB2 Java 驱动程序的属性。

还有一件事,如果你想要最快的,尝试使用 LOAD 将数据插入到数据库中。它不执行任何日志。您可以从 java 应用程序调用 LOAD(记住在执行任何命令之前加载 db2 环境)

于 2013-01-21T20:20:48.473 回答