我升级JDBC驱动到postgresql,奇怪的事情发生了

问题描述 投票:0回答:0

我将 JDBC 从 postgresql-9.2-1000.jar(PostgreSQL 9.2.1) 升级到 postgresql-42.5.0.jar(PostgreSQL 14.6),奇怪的事情发生了。 对于相同的查询,执行第四次或第九次后速度变慢。 (它不会发生在 postgresql-9.2-1000.jar(PostgreSQL 9.2.1))

例子:

public class JDBCExample3 {
    public static void main(String[] args) throws SQLException {
        Connection conn = DriverManager.getConnection("jdbc:postgresql://xxx.xxx.xxx.xxx:5432/testdb", "user",
                "password");
        String SQL = "select ...";

        for (int i = 0; i < 10; i++) {
            PreparedStatement pstmt = conn.prepareStatement(SQL);
            //set parameters 
            pstmt.setString(0, "122344acbc");
            // ... 
            
            // It's not slow with i from 0 to 8.
            ResultSet rs = pstmt.executeQuery(); //When i = 9 (after ninth execution), It takes long time here.  slow!!!
            while (rs.next()) {
                //get result
                rs.getString("name");
                //...
            }

            System.out.println("loop:" + i);
            
            //close
            rs.close();
            rs = null;
            pstmt.close();
            pstmt = null;
        }
        conn.close();
        System.out.println("end");
    }
}

我正在尝试修复它。 这里postgresql-42.5.0.jar(PostgreSQL 14.6)需要注意什么?

我预计“pstmt.executeQuery()”在所有执行过程中花费了相同的时间。

java postgresql jdbc postgresql-14 jdbc-postgres
© www.soinside.com 2019 - 2024. All rights reserved.