赞
踩
前言
为了设计高可用的数据库,必须要深入掌握数据库的事务。但是oracle的事务是一个非常庞大的概念及范围,需要多方面的梳理与思考,才能理解它的精髓,真正设计一个运行良好的数据库系统。
数据库事务是一套非常精巧的机制,可以从这些技术概念进行学习:
事务是实现数据库高并发的基石,非常重要
事务和事务隔离级别密切相关
事务在执行期间会产生锁
并发事务可能会产生死锁
事务和数据一致性相关,而数据库一致性又是通过mvcc实现
事务基于回滚段,二者又是什么关系
事务和对象的关联是什么
事务相关联的锁,里面有几种类型或类别
本文说说产生数据库事务的几种方法或方法,万里长征从头始,我们一步步来,慢慢迈入数据库事务的殿堂。
产生事务的几种方法
dml未提交产生事务
select for update产生事务
set transaction产生事务
dbms_transaction产生事务
示例代码
dml未提交事务
SQL> create table t_tran(a int);
Table created.
SQL> insert into t_tran select 1 from dual;
1 row created.
SQL> col sql_text for a50
SQL> set linesize 300
SID TADDR SQL_ID PREV_SQL_IDSQL_TEXT
---------- ---------------- ------------- ------------- --------------------------------------------------
50 0000000084201938 2un55p68csz4r insert into t_tran select 1 from dual
select for update产生事务
SQL> select * from t_tran for update;
A
----------
1
SQL> /
SID TADDR SQL_ID PREV_SQL_ID SQL_TEXT
---------- ---------------- ------------- ------------- --------------------------------------------------
50 0000000084201938 gmd5z3754t8km select * from t_tran for update
set transaction产生事务
SQL> set transaction name 'tran1';
Transaction set.
SQL> select * from t_tran;
A
----------
1
SQL> /
SID TADDR SQL_ID PREV_SQL_IDSQL_TEXT
---------- ---------------- ------------- ------------- --------------------------------------------------
50 0000000084201938 3rfg8vk38qhcq select * from t_tran
dbms_transaction产生事务
SQL> exec dbms_transaction.read_only;
PL/SQL procedure successfully completed.
SQL> /
SID TADDR SQL_ID PREV_SQL_IDSQL_TEXT
---------- ---------------- ------------- ------------- --------------------------------------------------
50 0000000084201938 7j2qb5qfzk4hu BEGIN dbms_transaction.read_only; END;
培训课件
(收费20元)
联系方式
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。