浏览 3092 次
锁定老帖子 主题:[原] Oracel JDBC 内存 问题
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-06-24
Oracle JDBC 驱动, 会使用大量的内存, 如果控制不好很容易导致Java出现Out of memory错误. 耗内存有多方面的原因: 主要包括四个方面: (下面的讨论全部基于我自己的环境: ojdbc6.jar, version是11.1.0.7.0-Production, Oracle 10G, Java6(JDBC4) )
详见我自己的blog文章: [原] Oracel JDBC 内存 问题
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-06-24
目前还没碰到因为oracle jdbc驱动问题导致OutOfMemory的
|
|
返回顶楼 | |
发表时间:2011-06-24
最后修改:2011-06-24
freish 写道 目前还没碰到因为oracle jdbc驱动问题导致OutOfMemory的
常见的 business web application应该不会有OOM问题, 因为所查询的数据量本身就比较小, 这种appliaction更多的是强调 table relationship, 业务 rule, and filter之类的. 但还有一部分程序是做后台的大数据的分析或是同步, 尤其是在分布式环境的维护. |
|
返回顶楼 | |
发表时间:2011-06-25
smithfox 写道 freish 写道 目前还没碰到因为oracle jdbc驱动问题导致OutOfMemory的
常见的 business web application应该不会有OOM问题, 因为所查询的数据量本身就比较小, 这种appliaction更多的是强调 table relationship, 业务 rule, and filter之类的. 但还有一部分程序是做后台的大数据的分析或是同步, 尤其是在分布式环境的维护. 直接写stored procedure了吧..难道你还全取出来用完再塞回去么?而且你觉得换个数据库和jdbc驱动就不会出现这个问题么. |
|
返回顶楼 | |
发表时间:2011-06-25
grave 写道 smithfox 写道 freish 写道 目前还没碰到因为oracle jdbc驱动问题导致OutOfMemory的
常见的 business web application应该不会有OOM问题, 因为所查询的数据量本身就比较小, 这种appliaction更多的是强调 table relationship, 业务 rule, and filter之类的. 但还有一部分程序是做后台的大数据的分析或是同步, 尤其是在分布式环境的维护. 直接写stored procedure了吧..难道你还全取出来用完再塞回去么?而且你觉得换个数据库和jdbc驱动就不会出现这个问题么. 用stored procedure解决业务计算? 每个人所处的Application和Business都不一样. 如果你没有遇到过 scale out 问题, 没有Global Level Database问题. 你就不会理解这些问题: for example: user信息是存在不同城市的 物理 Database Instance的, 你根本就无法在DataBase level处理一个新的用户是否已经在系统了. 这些都是 sale out的基本问题! 扯远了! 只想说: 如果你没遇到这个问题, 表示你所处Application和Business和我的不一样.或是你的解决方案不用 Oracle Database and Java |
|
返回顶楼 | |
发表时间:2011-06-27
印象与ResultSet的类型相关,如果是scrollable的,Oracle会把所有结果集都放在内存到OOM,否则应该没有OOM问题。
|
|
返回顶楼 | |
发表时间:2011-06-27
joachimz 写道 印象与ResultSet的类型相关,如果是scrollable的,Oracle会把所有结果集都放在内存到OOM,否则应该没有OOM问题。 恩, 谢谢提醒, 这个也是一个很重要的一个方面: 可以通过: stmt1 = this._conn.prepareStatement(sql, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY); stmt1.setFetchDirection(ResultSet.FETCH_FORWARD); 应该这种方式来做到你说的这一点! |
|
返回顶楼 | |