gpt4 book ai didi

java - 通过 DriverManager.getConnection 连接到 Informix 速度很慢

转载 作者:行者123 更新时间:2023-12-01 14:41:10 24 4
gpt4 key购买 nike

我正在使用 JDBC 通过 DriverManager.getConnection 方法 连接到 Informix 实例,但我遇到了问题。

DriverManager.getConnection 需要很长时间才能与 Informix 建立连接。我正在尝试解决这个问题,但到目前为止还没有成功。

如何解决这个问题?

最佳答案

您可以编写简单的测试来显示连接到数据库需要多长时间。对于这样的事情,我喜欢可以与 JDBC 一起使用的 Jython,它可以与 native JDBC 驱动程序一起使用,并且通过 JDBC-ODBC 桥可以与 ODBC 驱动程序一起使用。当然,您必须首先配置这样的 ODBC 连接。

这是显示此类时间的测试程序:

import sys
import traceback
import time

from java.sql import DriverManager
from java.lang import Class

Class.forName("com.informix.jdbc.IfxDriver")

def test_conn(db_url, usr, passwd):
try:
t0 = time.time()
try:
db = DriverManager.getConnection(db_url, usr, passwd)
t2 = time.time()
print('%s' % (db_url))
print('%s, connection time %.03f [s]\n' % (db, (t2-t0)))
finally:
db.close()
except:
print("there were errors!")
s = traceback.format_exc()
sys.stderr.write("%s\n" % (s))


def main():
for _ in range(5):
test_conn('jdbc:informix-sqli://169.0.5.10:9088/test:informixserver=ol_t1;', 'user', 'passwd')
test_conn('jdbc:odbc:ifx_test', 'user', 'passwd')

main()

我的机器上的结果显示 JDBC 的连接速度比 JDBC-ODBC 桥更快(您必须知道桥会增加一些 native 应用程序不需要的时间)。另外,我的测试是在 Windows 上运行的,其中 time.time() 的最小分辨率可能约为 15 毫秒。我的结果:

jdbc:informix-sqli://169.0.5.10...
com.informix.jdbc.IfxSqliConnect@1658cfb, connection time 0.015 [s]

jdbc:odbc:test
sun.jdbc.odbc.JdbcOdbcConnection@ad75b, connection time 0.047 [s]

当然,使用此程序,您可以测试相同的驱动程序,但使用不同服务器上的数据库。

关于java - 通过 DriverManager.getConnection 连接到 Informix 速度很慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15942279/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com