遍历结果集导致的超时问题。紧急求救!!! 我用的是oracle 9.02版本,使用weblogic7作为发布server,我在java中调用了对数据库的查询,查询的是单表,表中有55个字段,记录一共是3万条,现在我执行了查询之后在遍历结果集的时候发生timeout的问题。怎样努力都无法缩短时间,而客户服务器上的timeout是不能改动到的。所以请求各位朋友,有什么良好的解决方法? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 看看是weblogic报超时,还是数据库报的,然后到相应的地方改。 weblogic报错就是说transaction timeout 240s, 我尝试过修改weblogic中JTA的配置,改长timeout的时间值结果就OK,但是,客户production server不允许我去修改timeout的值。所以我只能调整sql的效果 回答楼上的。遍历的时候,同样处于连接状态。你要是close掉connection,就读取不到了。会提示connection is closed的错误。所以,不仅仅是查询的时候。 必须改客户server上的超时设置,33万条记录查询传输的速度主要是网络,看看网络能否扩 我也遇到过楼主的问题,不过最后还是修改transaction timeout改的。怎么做到分批取,查找的参数是动态传递的,可能大也可能小。而且表中的记录条数也是动态改变的。关注更好的解决方式 具体的说问题是这样的:客户原来的报表系统需要扩容,在原有系统的基础上扩容报表显示结果,因此在原有的sql逻辑中再增加逻辑,因此造成了整个sql的运行时间增加,超出了客户原来设置的transaction time,而且客户强烈反对更改weblogic server中timeout的时间值,因此鉴于这样的情况, 我采用的batchjob的方式去调用Procedure,然后把结果inset到一个放在一个新建的表中,这个表中的列就对应报表中需要显示的信息,所有业务逻辑计算和查询以及插入新表的操作都在Procedure中完成,而我这个调用Procedure是在一个单独的transaction中的,不存在timeout的情况。也就是说我的这个表其实就是整个sql业务逻辑跑完之后存放所需报表数据的表。因此我在DAO中做的就是单表的简单查询,字段是55个,记录3万多条。由于这套系统采用的是DAO中用jdbc直接链接,因此在java中执行查询后返回结果集,并遍历结果集取值,通过java文件操作生成需要merge到模板中的数据文件。现在的问题就是在执行了查询并且使用了索引之后,返回了结果集,但是在遍历的时候出现了timeout的问题。按照我的理解,遍历结果集就是指针的移动,应该是对于java的开销来说是很小的。但是现在在log中看出执行查询花费的时间非常少,因为是单表查询,但是遍历的时候就报错超时。百思不得其解…… 不知道说如果使用RowSet的话会不会有好的效果?因为该系统使用的是jdk1.4,因此RowSet的接口需要重写,如果改来使用RowSet的话,是否可以避免timeout的情况出现呢? 求个函数用法 数据同步 streams SQL Server 安装问题 union all 的效率问题 我要监控数据表的访问量,怎么操作啊? select a.* from smtopm a INNER JOIN iir b on a.item_key!=b.itm_key上面这句话有什么好的方法使执行时间更短,还有为什么这句话会产生 在线等!!oracle 9i中的一个简单命令,DX帮忙 如何对分组后的数据进行排序号再取出最大的十条记录 救急!动态建立存储过程的问题。 关于manager server的问题 物化视图在UPDATE、DELETE时怎么更新 小弟请教ORACLE数据库同步问题
所以,不仅仅是查询的时候。
怎么做到分批取,查找的参数是动态传递的,可能大也可能小。而且表中的记录条数也是动态改变的。
关注更好的解决方式
transaction中的,不存在timeout的情况。
也就是说我的这个表其实就是整个sql业务逻辑跑完之后存放所需报表数据的表。因此我在DAO中做的就是单表的简单查询,字段是55个,记录3万多条。
由于这套系统采用的是DAO中用jdbc直接链接,因此在java中执行查询后返回结果集,并遍历结果集取值,通过java文件操作生成需要merge到模板中的数据文件。现在的问题就是在执行了查询并且使用了索引之后,返回了结果集,但是在遍历的时候出现了timeout的问题。按照我的理解,遍历结果集就是指针的移动,应该是对于java的开销来说是很小的。但是现在在log中看出执行查询花费的时间非常少,因为是单表查询,但是遍历的时候就报错超时。百思不得其解……