网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

怎么使用Oracle的自治事务-创新互联

这篇文章主要介绍“怎么使用Oracle的自治事务”,在日常操作中,相信很多人在怎么使用Oracle的自治事务问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么使用Oracle的自治事务”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

创新互联建站自2013年起,是专业互联网技术服务公司,拥有项目成都网站设计、网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元泽州做网站,已为上家服务,为泽州各地企业和个人服务,联系电话:18982081108

Oracle 的自治事务

背景:最近在项目中遇到一个查询偶尔会卡三四秒,但是没有任何报错,查询的数据量很小,也不是每次都卡,比较奇怪。最终发现是自治事务搞的鬼。

一、自治事务的含义

自治事务:AUTONOMOUS TRANSACTION

在某个事物中独立开辟一个事务,内部事务操作不会影响同一会话的外部事务未提交的内容,同时内部事务也不受外部事务影响。

例如在A事务中开启一个b事务,A不管最后成功提交,还是失败会滚,b事务都能独立于A自己提交。

二、自治事务的用法

1、存储过程的开头用

PRAGMA AUTONOMOUS_TRANSACTION

来声明自治事务

2、自治事务结尾必须提交或回滚,否则报错:

ORA-06519: active autonomous transaction detected and rolled back

3、自治事务一般用于记录日志。不管业务(普通事务)成功提交或者失败回滚。日志(自治事务)都需要提交以记录必要的参数。

三、自治事务使用不当造成的死锁

最近在项目中遇到一个查询偶尔会卡三四秒,但是没有任何报错,查询的数据量很小,也不是每次都卡,比较奇怪。最终发现是自治事务搞的鬼。

外层事务=一个查询接口+一个自治事务B

一个查询接口A:先从临时表删除满足条件m的记录N1。然后在后续的内部自治事务中insert 一条记录N2,并提交。

一个自治事务B:从临时表删除满足条件m的记录N1,并提交。

最后外层大事务rollback。

1、当临时表没有对应删除的数据的时候,执行是正常的。

2、当临时表恰好有需要删除的数据时,那外层事务就把N1锁掉了,自治事务B再删除N1就会造成死锁。三秒后死锁报错,结束。外层事物继续执行。

四、自治事务使用建议

自治事务和普通事务最好业务分离,不要操作同一张表。最佳应用场景还是用于记录日志。

到此,关于“怎么使用Oracle的自治事务”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联-成都网站建设公司网站,小编会继续努力为大家带来更多实用的文章!


文章题目:怎么使用Oracle的自治事务-创新互联
本文URL:http://bjjierui.cn/article/heddh.html

其他资讯