今天做了一个连接SQL server的小测试结果如下
?
1. ?在20000次的循环中创建和关闭与SQL server 2012 的连接,且每次循环线程睡0毫秒。
? ? ?结果: 在执行过程中会报异常,执行完毕的时间12分钟左右
2. ?在20000次的循环中创建和关闭与SQL server 2012 的连接,且每次循环线程睡20毫秒。
? ? ?结果: 在执行过程中不报异常但却有等待连接的时间,执行完毕的时间11分钟左右
3. ?在20000次的循环中创建和关闭与SQL server 2012 的连接,且每次循环线程睡40毫秒。
? ? ?结果: 在执行过程中无异常且连接无等待,执行完毕的时间13分钟左右
综上结果:在短时间内数据库开关次数多了,就会有连接延迟。
?
为何出现该现象,如何优化该问题呢?
?
?
import java.util.Date;import daemon.DBConnectUtil;public class ConnnectionTest { public static void main(String[] args) { try { long s = new Date().getTime(); for (int i = 0; i < 20000; i++) { System.out.print("i " + i + " j " + j); Thread.sleep(20); DBConnectUtil cu = new DBConnectUtil("172.31.9.185", "BOH_CASH"); cu.getConnection(); cu.closeConnection(); } System.out.print("time: " + (new Date().getTime() - s)); } catch (InterruptedException e) { e.printStackTrace(); } }}