2015-10-05 72 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調用它時使用了不同的更長的執行計劃。

我將連接分成兩個單獨的查詢,它工作正常。