社区
Oracle
帖子详情
事务中不提交或不回滚会造成连接上的内存泄漏吗?
spiderww
2008-04-02 02:26:32
创建一个连接并开始一个事务,若循环提交DML语句但不进行commit或rollback,连接上的内存会不断增长吗?如果是的话有没有上限控制啊,例如不能超出回滚区的大小?如果没有上限是不是就会用光内存?
...全文
392
9
打赏
收藏
事务中不提交或不回滚会造成连接上的内存泄漏吗?
创建一个连接并开始一个事务,若循环提交DML语句但不进行commit或rollback,连接上的内存会不断增长吗?如果是的话有没有上限控制啊,例如不能超出回滚区的大小?如果没有上限是不是就会用光内存?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
spiderww
2008-04-08
打赏
举报
回复
谢谢大家,有些清楚了
utpcb
2008-04-03
打赏
举报
回复
up
wffffc
2008-04-03
打赏
举报
回复
若循环提交DML语句但不进行commit或rollback?提交不是commit吗?
连接上的内存会不断增长吗?我觉得不会。
开发的时候根据业务的需要进行提交就可以了,一般不会有问题的。
dml只是会产生undo信息,同时写入redo日志,还有就是把数据块写入数据文件,涉及的内存包括:块缓存区,日志缓存区,shared pool,等,oracle中的内存分配要不是分配好的,也就是固定大小。要不就是oracle自动管理的,由orcle动态调整。
doer_ljy
2008-04-02
打赏
举报
回复
应该不会是无限增加这么简单的处理。
首先要看你的回滚管理方式,使自动撤销管理方式还是手动方式(回滚段管理方式)。
然后还有可能被undo_retention影响。
spiderww
2008-04-02
打赏
举报
回复
undo表空间好像是可以自动扩展的啊,如果自动扩展的话,超大的事务会造成内存耗尽吧
spiderww
2008-04-02
打赏
举报
回复
如果事务一直不结束是什么情况?是不是只要在undo表空间大小范围之内就没有问题?
小兽
2008-04-02
打赏
举报
回复
当然不会,要不PMON是干什么吃的?
CathySun118
2008-04-02
打赏
举报
回复
内存泄漏,不会阿!
wffffc
2008-04-02
打赏
举报
回复
事物结束的时候提交,只要undo表空间不要太小一般不会有问题
关于数据库
内存
泄露(概念)
缓存使用不当:在数据库访问过程
中
,使用缓存来提高性能是很常见的做法。长时间运行的
事务
:长时间运行的
事务
(Transaction)
会
占用数据库的资源,如果
事务
没有正确处理,或者没有及时
提交
或
回滚
,就
会
导致资源无法释放,从而引发
内存
泄漏
。是指在数据库操作过程
中
,由于某种原因导致数据库系统
中
的
内存
无法被正确释放或回收,最终导致
内存
占用不断增加,达到系统可用
内存
上限,导致系统性能下降甚至崩溃的情况。未关闭的数据库
连接
:在进行数据库操作后,未正确关闭数据库
连接
,
会
导致
连接
资源无法释放,从而占用
内存
。
Day05—JDBC操作
事务
与数据库
连接
池
一:JDBC操作
事务
1.1:
事务
异常
回滚
事务
控制
连接
.setAutoCommit(false); 开启
事务
连接
.rollback();
连接
.commit(); connection.setAutoCommit(false); connection.setAutoCommit(true); @Test public void test01() throws SQLException, IOException, ClassNotFoundException {...
数据库
事务
与
连接
池
数据库
事务
数据库
事务
介绍 1.
事务
:一组逻辑操作单元,使数据从一种状态变换到另一种状态。 2.
事务
处理(
事务
操作):保证所有
事务
都作为一个工作单元来执行,即使出现了故障,都不能改 变这种执行方式。当在一个
事务
中
执行多个操作时,要么所有的
事务
都被
提交
(commit),那么这些 修改就永久地保存下来;要么数据库管理系统将放弃所作的所有修改,整个
事务
回滚
(rollback)到最 初状态。 3. 为确保数据库
中
数据的一致性,数据的操纵应当是离散的成组的逻辑单元:当它全部完成时,数 据的一致性可以
JDBC
事务
和DBUtils框架
对于不支持
事务
的数据库,JDBC也无法提供
事务
处理的功能。方法)时,由于
事务
需要手动
提交
或
回滚
,因此需要手动关闭数据库
连接
。在JDBC
中
,
事务
是指一组数据库操作,这些操作被视为一个单独的工作单元,并且要么全部成功完成,要么全部失败
回滚
。进行数据库操作时,不需要手动关闭这些资源,可以避免因未关闭资源而导致的
内存
泄漏
和数据库
连接
池资源耗尽等问题。还提供了多种构造函数,可以传入不同的数据源和结果集处理器,以适应不同的使用场景。参数是一个可变参数,可以传入多个参数,用于替换SQL语句
中
的占位符。
47--Spring @Transactional声明式事物(四)事物
提交
和
回滚
1.引 通过前面的分析,已经成功的创建了事物,但是不要忘了,当前方法仍在方法拦截器链
中
。回顾一下代码片段: // 2.处理声明式事物 if (txAttr == null || !(tm instanceof CallbackPreferringPlatformTransactionManager)) { // Standard transaction demarcation with g...
Oracle
17,089
社区成员
55,237
社区内容
发帖
与我相关
我的任务
Oracle
Oracle开发相关技术讨论
复制链接
扫一扫
分享
社区描述
Oracle开发相关技术讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章