标签:style blog http color io ar 数据 sp div
事务提交过程
事务
| 
 基本概念  | 
| 
 概念:一个或者多个DML语言组成 特点:要么都成功,要么都失败 事务的隔离性:多个客户端同时操作数据库的时候,要隔离它们的操作, 否则出现:脏读 不可重复读 幻读  | 
| 
 Oracle默认情况下,事务是打开的  | 
| 
 commit案例: SQL> create table t1(tid int,tname varchar2(20)); 
 表已创建。 
 SQL> select * from tab; 
 TNAME TABTYPE CLUSTERID ------------------------------ ------- ---------- BONUS TABLE DEPT TABLE EMP TABLE EMP10 TABLE SALGRADE TABLE T1 TABLE 
 已选择6行。 
 SQL> insert into t1(tid,tname) values(1,‘aaaaa‘); 
 已创建 1 行。 
 SQL> select * from t1; 
 TID TNAME ---------- -------------------- 1 aaaaa 
 SQL> commit; 
 提交完成。 
 SQL> select * from t1; 
 TID TNAME ---------- -------------------- 1 aaaaa 
 SQL> rollback; 
 回退已完成。 
 SQL> select * from t1; 
 TID TNAME ---------- -------------------- 1 aaaaa 
 SQL>  | 
| 
 | 
| 
 rollback案例: SQL> select * from t1; 
 TID TNAME ---------- -------------------- 1 aaaaa 
 SQL> insert into t1(tid,tname) values(2,‘bbb‘); 
 已创建 1 行。 
 SQL> select * from t1; 
 TID TNAME ---------- -------------------- 1 aaaaa 2 bbb 
 SQL> rollback; 
 回退已完成。 
 SQL> select * from t1; TID TNAME ---------- -------------------- 1 aaaaa SQL>  | 
Oracle中的事务生命周期
| 
 1.事务的起始标志 DML语言(oracle默认事务是打开的)  | 
|||
| 
 2.事务的结束标志  | 
 提交  | 
 显式提交commit  | 
|
| 
 隐式提交  | 
 执行DDL语句 Eg:执行create table的时候还有1个隐式的功能 提交之前没有提交的DML语句(insert update)  | 
||
| 
 正常退出  | 
|||
| 
 回滚  | 
 显式rollback  | 
||
| 
 隐式:掉电/宕机/非正常退出,这几者等价于系统出错了  | 
|||
4 保存点savepoint
| 
 案例:  | 
| 
 SQL> select * from t1; 
 TID TNAME ---------- -------------------- 1 aaaaa 
 SQL> insert into t1(tid,tname) values(2,‘bbb‘); 
 已创建 1 行。 
 SQL> select * from t1; 
 TID TNAME ---------- -------------------- 1 aaaaa 2 bbb 
 SQL> rollback; 
 回退已完成。 
 SQL> select * from t1; 
 TID TNAME ---------- -------------------- 1 aaaaa 
 SQL>  | 
| 
 | 
| 
 总结:最后一条insert语句没有插入进去,回滚到了指定的保存点  | 
数据库的隔离级别
| 
 对于同时运行的多个事务,当这些事务访问数据库中相同的数据时,如果没有采取必要的隔离机制,就会导致各种并发问题  | 
 脏读:对于两个事务T1,T2,T1读取了已经被T2更新但还没有被提交的字段之后,若T2回滚。T1读取的内容就是临时且无效的。  | 
| 
 不可重复读:对于两个事物T1,T2,T1读取了一个字段,然后T2更新了该字段,之后T1再次读取同一个字段,值就不同了。  | 
|
| 
 幻读:对于两个事务T1,T2,T1从一个表中读取了一个字段,然后T2在该表中插入了一些新的行。之后,如果T1再次读取同一个表,就会多出几行。  | 
|
| 
 数据库事务的隔离性:数据库系统必须具有隔离并发运行多个事务的能力,使它们不会相互影响,避免各种并发问题。  | 
|
| 
 一个事务与其他事务隔离的程度称为隔离级别. 数据库规定了多种事务隔离级别, 不同隔离级别对应不同的干扰程度, 隔离级别越高, 数据一致性就越好, 但并发性越弱  | 
|
| 
 数据库提供4中事务隔离级别:sql99  | 
|
| 
 | 
|
| 
 Oracle 支持的 2 种事务隔离级别:READ COMMITED, SERIALIZABLE. Oracle 默认的事务隔离级别为: READ COMMITED 另外还支持一种隔离级别:read-only  | 
|
| 
 Mysql 支持 4 中事务隔离级别. Mysql 默认的事务隔离级别为: REPEATABLE READ  | 
|
4.事务提交过程,事务基本概念,Oracle中的事务生命周期,保存点savepoint,数据库的隔离级别
标签:style blog http color io ar 数据 sp div
原文地址:http://blog.csdn.net/tototuzuoquan/article/details/39977293