在使用游标表达式迭代SQL查询的ResultSet时遇到性能问题。
SQL query(example)
select id, name , cursor (select id,name from subject ) as cusr1 from student
这就是我在java中检索游标的方法
statement = connection.createStatement();
resultSet=statement.executeQuery(query);
while (resultSet.next()) { //Read every row
int columnCount = resultSet.getMetaData().getColumnCount();
for (int column = 1; column <= columnCount; column++) { //Read every column
String columnName = resultSet.getMetaData().getColumnName(column);
Object value = resultSet.getObject(columnName);
if (value != null) {
System.out.println("Value Not Null");
if(value instanceof ResultSet){
System.out.println("Success");
ResultSet rs1=(ResultSet)value;
while(rs1.next()){
String name=rs1.getString("name");
System.out.println("Name is "+name);
Long id=rs1.getLong("id");
System.out.println("Id is "+id);
}
}
}
}
}
与resultSet的处理时间相比,查询的执行时间非常少(迭代相同,获取cusror数据等)。
我在这里做错了吗?有没有办法改善表现?