我在Windows 7系统(x64)上通过ODBC连接本地DB2(v9.7 Express-C)数据库的速度非常慢。我编写了几个测试程序,每个程序连接到本地数据库连续100次(不查询)并测量时间。结果是:通过ODBC连接到DB2非常慢
C++ 86 DB2/ODBC: 32位C++应用程序,经由CDatabase
C++ 86 DB2/ODBC连接到本地DB2数据库:与上面相同,但64位应用
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驱动程序如此之慢是否正常?!
有了这几个细节,不可能给你任何有意义的答案,但有一点你应该看看是数据库激活。 DB2在第一次连接时激活数据库,并在上次连接关闭时将其停用。在测试之前尝试发出'ACTIVATE DB'。 –
mustaccio
2014-09-11 13:52:43
这有帮助!哇,谢谢,我一直在为此奋斗!发布作为答案,我会接受。你能否告诉我如何配置我的DB2实例,以便在启动后始终激活该数据库?另外,为什么通过JDBC连接速度如此之快? JDBC驱动程序不能激活数据库本身,因为连接到数据库的用户没有足够的权限。 – 2014-09-11 14:18:18
您可以提供连接时间值与激活的数据库吗? – AngocA 2014-09-11 18:24:58