2015-10-05 74 views
1

我正在创建一个简单的JDBC连接并执行预准备语句。 查询返回10行,在简单的Java应用程序中执行查询大约需要20秒。与Java应用程序相比,Tomcat8中的非常慢的JDBC性能

当我将它作为WAR文件部署在tomcat中并且相同的查询由servlet执行时,有时需要大约3到4分钟。

无法弄清楚可能的原因。

+2

有几个地方需要注意:1)使用连接池而不是手动打开物理连接2)确保应用服务器和数据库服务器之间的延迟非常低3)检查两台服务器是否属于同一网段 –

+0

该问题与此类似http://stackoverflow.com/questions/30775287/sql-execution-time-much-slower-in-a-tomcat-servlet-than-in-a-normal-java-program我是使用连接池,并且是两个服务器都属于同一个网络,并且Java应用程序和服务器都在同一台计算机上 –

回答

1

它已经很长了。 但是,如果有人仍在寻找。

缓慢的根本原因是存在SQL中的Join。 虽然SQL Developer中的联接速度更快,但我认为从JDBC调用它时使用了不同的更长的执行计划。

我将连接分成两个单独的查询,它工作正常。