通过ODBC连接到DB2非常慢

时间:2014-09-11 13:05:01

标签: database windows jdbc db2 odbc

我在Windows 7系统(x64)上通过ODBC与本地DB2(v9.7 Express-C)数据库的连接速度非常慢。我写了几个测试程序,每个测试程序连续100次连接到本地数据库(没有查询)并测量时间。结果是:

Average time for connection to a local database using different methods C ++ x86 DB2 / ODBC: 32位C ++应用程序,通过CDatabase连接到本地DB2数据库
C ++ x86 DB2 / ODBC:与上面相同,但是x64应用程序
PHP DB2 / ODBC:通过odbc_connect连接到本地DB2数据库 PHP MySQL / ODBC:通过odbc_connect连接到本地MySQL数据库 JDBC DB2: Java应用程序,使用DB2 JDBC驱动程序连接到本地DB2数据库 JDBC MySQL: Java应用程序,使用MySQL JDBC驱动程序连接到本地MySQL数据库。

我的第一个想法是我的ODBC配置出了问题,但是你可以看到通过ODBC连接MySQL数据库就像魅力一样。另一方面,使用JDBC驱动程序而不是ODBC连接到DB2也可以正常工作(尽管它仍然比MySQL慢很多)。

我找到了this related question,但它并不适用于我。 任何可能导致这种情况以及如何解决的提示都会很棒!


补充问题:通过ODBC连接到DB2数据库时,常见的连接时间是多少? DB2 ODBC驱动程序这么慢是否正常?!

1 个答案:

答案 0 :(得分:2)

您应该关注的一件事是数据库激活。 DB2在第一次连接时激活数据库,并在最后一次连接关闭时将其停用。在激活期间,DB2会分配事务日志文件,内存池,并执行一些需要时间的其他任务。

此行为不依赖于连接类型(ODBC或JDBC);您观察到的差异可能是通过在JDBC测试期间使数据库保持活动状态的额外连接来解释的。

尝试在测试之前发出ACTIVATE DB <YOURDB>,即使在没有连接的情况下也会使数据库保持活动状态。除了在系统启动时发出此命令,默认情况下无法激活数据库,例如从批处理文件。