0
hiii, 我在我的web应用程序的java类中调用了一个存储过程,有一些报告花费了很多时间来渲染jsp/HTML,我也用存储过程查询它只需要2秒钟就可以在oracle浏览器中执行。我检查了我的SP调用代码,发现我的结果集获取时间非常少,但是当试图用While(rst.next)迭代结果集时,它几乎需要3分钟才能在while循环中打印SOP,我疑问必须有问题与ret.next(), 我的代码如下,jdbc resultset性能下降
Connection connection = null;
CallableStatement stmt = null;
ResultSet rst = null ;
connection = DBConnector.getConnection();
stmt = connection.prepareCall("{call MIS_GSGR_ASON.MIS_DIVNETSALE_ASON(?,?,?,?,?,?,?,?,?)}");
stmt.setString(1,START_DT);
stmt.setString(2,END_DT);
stmt.setString(3,DIVISION);
stmt.setString(4,LOC_ID);
stmt.setInt(5,USER_GRP);
stmt.setInt(6,FIELD_ID);
stmt.setInt(7,Integer.parseInt(PERIOD_ID));
stmt.setString(8,zone);
stmt.registerOutParameter(9+INC,OracleTypes.CURSOR);
stmt.execute();
rst = (ResultSet) stmt.getObject(9+INC);
System.out.println("Got resultset . . . .");
data = new ArrayList<MainActionAll>();
while(rst.next()){
System.out.println("In loop");}
任何帮助将高度appriciated,请 感谢帮助我,AMOL
我不知道你通常在你的结果集迭代中做什么,但在紧密的循环中打印到控制台的简单行为本身*非常昂贵 – 2012-07-18 10:15:00
即时只是试图打印我插入的SOP在while循环中,在获得结果集后,我不能打印该语句,但它花费太多时间才能在控制台上打印 – Amol 2012-07-18 11:11:15
您可以使用输出到控制台的代码将您的代码注释掉吗? – Olaf 2012-07-18 13:00:08