0
我面臨性能問題與我的sql服務器,當我試圖連接使用Java應用程序。 sqljdbc4-4.0是我的驅動程序版本。看起來這是可用於此的最新版本。我的服務器結果集花費很長時間while循環通過
問題出現在我將PreparedStatemnt與set paramerter選項一起使用時,以及在特定次數的迭代之後循環通過結果集時,執行停止amost 5min並重新開始迭代。這在一些固定的迭代中發生。
即使是像下面這樣的非常簡單的查詢,也會出現這種情況。
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條件也沒有運行完全正常工作掛。
這告訴我,當我使用set參數選項時出現問題。我試圖用頂行來查看問題是否與大量的行有關。但即使當我用100設置頂端。對於這100行本身,迭代在第28次迭代和第66次迭代時停止2次。我認爲它掛起的迭代取決於列數的大小。
有人可以幫我解決問題。
在此先感謝, Syam。
我在第二個查詢本身嘗試了「Raj」。即使這樣,它也跑得很快。我甚至嘗試過使用日期範圍,比如從'2011/02/25'和'2011/02/27'之間的Date1中選擇id,姓名,電話等條件。結果是一樣的,在28日和66日需要很長時間。 –