linux连接oracle11g慢

12-07-23 ov100
linux连接oracle11g慢

在开发过程中出现Hibernate第一次查询比较慢,开启dubug定位到是第一次获取数据库连接比较耗时。
我做了以下测试,用JDBC来获取数据库连接耗时
Class.forName("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@192.168.1.115:1521:testdb";
String user = "test";
String pwd = "test";
long s = System.currentTimeMillis();
Connection c = DriverManager.getConnection(url, user, pwd);
long e = System.currentTimeMillis();
System.out.println("ttt:"+(e-s));

在本地window7环境中,测试结果190-234ms
在本地ubuntu环境中,测试结果276-6385ms
在本地window7+vm+unbunt环境中,测试结果138-13234ms
在公司开发环境windows7+vm+RedHat环境中,测试结果11651-55927ms

以上测试在windows环境中很正常,也很稳定,为什么在linux中差值那么大,尤其是在公司的开发环境中获取连接时间更慢,90%的时候都在20S以上

我在网上找到相应的解决方法
删除/etc/nsswitch.conf hosts files dns 中的dns
删除/etc/resolv.conf 中的dns
删除/etc/hosts中ipv6设置

但还是没有解决问题

banq
2012-07-24 09:02
希望Stack overflow中这个回答对你有帮助:Very long SQL connection opening time

ov100
2012-07-30 12:19
谢谢banq,我参照了其他朋友的解决方法,把ojdbc6降为ojdbc14,解决问题,不知道为什么版本高的会有这个问题出现