`
smithfox
  • 浏览: 54566 次
  • 性别: Icon_minigender_1
  • 来自: hf
社区版块
存档分类
最新评论

[原] Oracel JDBC 内存 问题

阅读更多

Oracle JDBC 驱动, 会使用大量的内存, 如果控制不好很容易导致Java出现Out of memory错误.

耗内存有多方面的原因: 主要包括四个方面: (下面的讨论全部基于我自己的环境: ojdbc6.jar, version是11.1.0.7.0-Production, Oracle 10G, Java6(JDBC4) )

 

详见我自己的blog文章:

[原] Oracel JDBC 内存 问题

 

分享到:
评论
6 楼 smithfox 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);

应该这种方式来做到你说的这一点!
5 楼 joachimz 2011-06-27  
印象与ResultSet的类型相关,如果是scrollable的,Oracle会把所有结果集都放在内存到OOM,否则应该没有OOM问题。
4 楼 smithfox 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
3 楼 grave 2011-06-25  
smithfox 写道
freish 写道
目前还没碰到因为oracle jdbc驱动问题导致OutOfMemory的

常见的 business web application应该不会有OOM问题, 因为所查询的数据量本身就比较小, 这种appliaction更多的是强调 table relationship, 业务 rule, and filter之类的.

但还有一部分程序是做后台的大数据的分析或是同步, 尤其是在分布式环境的维护.

直接写stored procedure了吧..难道你还全取出来用完再塞回去么?而且你觉得换个数据库和jdbc驱动就不会出现这个问题么.
2 楼 smithfox 2011-06-24  
freish 写道
目前还没碰到因为oracle jdbc驱动问题导致OutOfMemory的

常见的 business web application应该不会有OOM问题, 因为所查询的数据量本身就比较小, 这种appliaction更多的是强调 table relationship, 业务 rule, and filter之类的.

但还有一部分程序是做后台的大数据的分析或是同步, 尤其是在分布式环境的维护.
1 楼 freish 2011-06-24  
目前还没碰到因为oracle jdbc驱动问题导致OutOfMemory的

相关推荐

    oracle采用jdbc连接方式分页

    在Oracle数据库中,使用JDBC(Java Database Connectivity)进行...通过这种方式,你可以有效地控制数据的读取,减少内存占用,提高应用性能。同时,这也是数据库操作的基础,对于开发复杂的Java数据库应用至关重要。

    Oracle的连接数据库的驱动ojdbc各个版本

    - **JDBC URL模板**:通常格式为 "jdbc:oracle:driver_type://host:port/service_name",其中driver_type可能是thin、oci等。 在实际开发中,我们可以通过以下步骤配置和使用ojdbc驱动: 1. 将ojdbc驱动的jar文件...

    oracel

    oracel

    jdbc 连接 jar 包(含有mysql/oracel/sql server2000/sql server2005)

    标题中的“jdbc 连接 jar 包”指的是Java Database Connectivity(JDBC)驱动程序的集合,这些驱动程序允许Java应用程序连接到不同的数据库管理系统(DBMS),如MySQL、Oracle和SQL Server。在Java中,JDBC是Sun ...

    oracel驱动包 6跟8 ojdbc6.jaro jdbc8.jar

    这里我们有两个版本的驱动:ojdbc6.jar和ojdbc8.jar,分别对应Oracle数据库的JDBC驱动程序的第6版和第8版。 1. **Oracle JDBC驱动**: Oracle JDBC驱动是Oracle公司提供的Java数据库连接器,遵循Java Database ...

    Hibernate实例 oracel数据库

    标题"Hibernate实例 oracel数据库"表明我们将探讨如何使用ORM框架Hibernate与Oracle数据库进行交互。在实际开发中,Hibernate是Java领域非常流行的一个对象关系映射工具,它允许开发者以面向对象的方式操作数据库,...

    Oracel数据库常见问题。doc

    64位版本通常可以处理更大的数据量和更高的内存利用率,而32位版本可能受到内存限制。 6. **以SYSDBA身份登录**: - 通过运行`sqlplus '/ AS SYSDBA'`,你可以以系统管理员角色登录Oracle数据库,这允许执行高级...

    jsp-oracel.rar_JSP oracel_Oracel_oracle

    标题中的“jsp-oracel.rar”表明这是一个关于JSP与Oracle数据库交互的资源包,而“JSP oracel_Oracel_oracle”的描述进一步确认了这一点,它提到的内容是使用JSP来连接和操作Oracle数据库。标签“jsp_oracel oracel ...

    MySql和Oracle的JDBC驱动

    在开发Java数据库连接(JDBC)应用程序时,MySQL和Oracle数据库是两个常见的选择。这两个数据库系统都提供了JDBC驱动,使得Java程序能够通过标准接口与数据库进行交互。下面将详细介绍MySQL和Oracle的JDBC驱动以及...

    连接数据库的方法 oracel

    2. **ODBC/JDBC**:通过开放数据库连接(ODBC)或Java数据库连接(JDBC)驱动程序,可以在各种编程语言(如Java、C++、Python等)中连接Oracle。需要配置相应的数据源(DSN)或驱动,并使用连接字符串建立连接。 3. **PL/...

    oracle11g jdbc驱动

    驱动列表 ojdbc5-11.1.0.6.jar ojdbc5-11.1.0.7.jar ojdbc5-11.2.0.1.jar ojdbc5-11.2.0.2.jar ojdbc5-11.2.0.3.jar ojdbc5-11.2.0.4.jar ojdbc6-11.1.0.6.jar ojdbc6-11.1.0.7.jar ojdbc6-11.2.0.1.jar ...

    Spring boot连接oracle数据库JDBC配置步骤

    请注意,版本号不要变,否则可能会出现问题。另外,其他版本的 Oracle JDBC 驱动程序可能不在开源协议中,无法自动下载 jar 包。 Step 2: 配置 application.properties 在 `application.properties` 文件中添加...

    Oracel体系结构学习总结

    这个实例包含了一系列的内存结构和后台进程,用于管理数据库的运行。 - **作用**:用户通过实例来连接和使用数据库。每个实例都对应着一个特定的数据库,并通过SID(系统标识符)来唯一标识。 - **组成部分**: - *...

    不用安装oracel就能直连oracel数据库的方法

    里面有plsql+instantclient_11_2+使用教程,特别详细亲测有效,有时候电脑装不上oracel数据库或者装上导致电脑很卡,我们就可以选择用oracel客户端工具来在没有oracel的前提下连接oracel数据库。

    ORACEL form 开发参考

    ORACEL form 生成CSV文件 设置不可入力项目 块循环操作 对话框,确认与取消

    wxh oracle内存分配

    Oracle数据库系统是企业级数据管理的重要工具,其性能优化很大程度上取决于内存的合理分配。"wxh oracle内存分配"这个主题主要...通过深入学习Oracle内存管理机制,可以解决各种性能问题,确保数据库系统的高效运行。

    Oracle 12C JDBC驱动 jar包 各版本驱动详解

    正确选择和使用JDBC驱动能确保Java应用与Oracle数据库之间通信的稳定性和效率,避免因版本不匹配引发的诸多问题。在实际项目中,务必根据具体环境和需求选择合适的驱动,并确保正确配置和使用。

    VC+++Oracel开发技术

    5. **内存管理和优化**:讨论动态内存分配、智能指针的使用,以及如何避免内存泄漏,提高程序效率。 6. **多线程编程**:在现代软件中,多线程是常见的并发执行方式,本书会介绍如何在VC++中实现多线程,以及同步和...

Global site tag (gtag.js) - Google Analytics