事务机制

1.概念——多步操作组成的一个(逻辑单元)业务系统。

   1.1:why——业务要求+数据恢复。

   1.2:与数据库日志相关。

 

2.事务实现机制

        开启事务

       *Oracle在执行sql语句时自动开启。

——>

        用户执行数据库DML语句

        *set transaction——开启一个可读/读写的会话,建立隔离级别,为当前事务制定回滚段。

        *lock table——以制定的模式锁表,将覆盖默认的行锁。

——>

        DBMS在日志文件中写一条记录(被该语句影响的每一条记录的前后2个副本)

————>

                正常

————>

                例外,回滚

——>

        日志写完

————>

                提交事务,修改数据库

                *commit——提交数据到数据库,释放资源。

                *自动提交的条件——退出SQL*PL;执行DCL;执行DDL。

————>

                未提交,则自动回滚

                *rollback——回滚所有的改变,释放资源。

                *savepoint——设置一个保存点,可以回滚到这里。

                *rollback to savepoint——回滚到该保存点,释放保存点内的资源。

       

       

       

       

       

 

3.隔离级别——隔离级别与性能成反比。

    2.1:未提交读——赃读

    3.2:提交读——更改(dml)的数据不可见,读(select)的数据可修改——不可重复读

    3.3:可重复读——更改(dml)的数据不可见,读(select)的数据其它事务可读——幻想

    3.4:可串行读

4:锁

     4.1:锁的分类

          4.1.1:内部锁(latch)——Oracle自动管理,保护内部数据库结构。

          4.1.2:DDL锁——create、drop、truncate、alter

          4.1.3:DML锁——事务

     4.2:锁的模式

          4.2.1:share(s)——其它事务可以加S锁,不能修改数据

          4.2.2;exclusive(x)——不允许其它事务锁定该表

          4.2.3:row share(rs)——

          4.2.4:row exclusive

          4.2.5:share row exclusive(srx)——表加S锁,行加X锁。

    4.3:锁粒度——锁定的对象越大,锁粒度越大,能利用的资源就越少,并发度越小,系统开销越小。

          *行级锁、表级锁、数据库级锁。

5.特点

   5.1:一致性——状态改变前后,必须能量守恒。

   5.2:原子性——指事务不可分割,作为一个团体同进退。

   5.3:持久性——事务完成后,的变更是不可回滚的。

   5.4:隔离性——每个事务必须孤立于其它事务执行。没有交际。不可见。

   5.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值