一个由proxool配置文件的sql语句配置引起的问题

布了个应用程序,发现程序很有规律,执行sql语句非常的慢。
5分钟就会出错问题,执行一条语句用子大概5秒钟。执行10次后,又恢复正常。
查一天,也想了一天都找不到原因。
开启日志的dubug模式,终于发现问题。
原因是由proxool连接池配置引起的问题。

proxool 文件里配置了连接 两个库。
一个是连接orcale 的库,一个连接 sql server 的库。
配置都是 5分钟一次检查连接。 语句都是 select * from dual
问题就出在这个语句上,sql server 是不支持 select * from dual,这个语句的。
这样proxool每5分钟(配置的),检查的时候就会出错,proxool就认为是连接断开了,
就清空所有的连接,包括连接 orcale 库的连接,然后重新建立连接。
这样就会导致sql语句非常的慢。要等待proxool连接池初始化所有连接,才能执行语句。

解决方法:
把连接 sql server 的检查语句改成 select 1 就可以了。

你可能感兴趣的:(sql,SQL Server)