在开发过程中出现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设置
但还是没有解决问题