Java 我的服务器结果集在循环过程中花费了很长时间

Java 我的服务器结果集在循环过程中花费了很长时间,java,mysql,sql-server-2012,Java,Mysql,Sql Server 2012,当我尝试使用java应用程序连接时,我的sql server面临性能问题。sqljdbc4-4.0是我的驱动程序版本。看起来这是最新的可用的 当我使用带有set parameter选项的PreparedStatemnt时,当在特定次数的迭代之后通过结果集循环时,执行会停止5分钟,然后再次开始迭代。这种情况在某些固定的迭代中停止发生 即使对于下面这样非常简单的查询,也会发生这种行为 PreparedStatemnt ps = null; ResultSet rs = null; ps = con.

当我尝试使用java应用程序连接时,我的sql server面临性能问题。sqljdbc4-4.0是我的驱动程序版本。看起来这是最新的可用的

当我使用带有set parameter选项的PreparedStatemnt时,当在特定次数的迭代之后通过结果集循环时,执行会停止5分钟,然后再次开始迭代。这种情况在某些固定的迭代中停止发生

即使对于下面这样非常简单的查询,也会发生这种行为

PreparedStatemnt ps = null;
ResultSet rs = null;
ps = con.prepareStatemnt("select id,name,phone from Table1 where name = ?");
ps.setString(1, "Raj");

rs = ps.executeQuery();   // OK here
int i=0;
while(rs.next()){            // hangs here
   System.out.println(i++);
}
但是,如果我不设置参数并像这样将参数连接到查询中,它就可以正常工作

PreparedStatemnt ps = null;
ResultSet rs = null;
ps = con.prepareStatemnt("select id,name,phone from Table1 where name = 'Bob' ");

rs = ps.executeQuery();   // OK here
int i=0;
while(rs.next()){            // OK now
    System.out.println(i++);
}
当我使用不带where条件的查询时,它可以完美地运行,不会挂起

这告诉我,当我使用设置参数选项时,问题就出现了。我尝试使用最上面的行来查看问题是否出在行的数量太多上。但即使我以100分的成绩登上榜首。对于这100行本身,迭代在第28次迭代和第66次迭代时停止了2次。我认为它挂起的迭代取决于列数的大小

有人能帮我解决这个问题吗

提前感谢,,
Syam.

数据库中的RAJ比BOB多得多

它与是否使用
PreparedStatement
参数无关。

我在第二个查询本身中对“Raj”也做了同样的尝试。即使是这样,它也运行得很快。我甚至尝试了where条件下的日期范围,例如从表1中选择id、name、phone,其中日期介于“2011/02/25”和“2011/02/27”之间。结果是一样的,在28日和66日需要很长时间。