zoukankan      html  css  js  c++  java
  • ORacle锁

    锁:用来共享资源控制并发访问的一种机制

    锁由Oracle自动管理,锁持续的时间等于被提交事务处理的时间

    单用户数据库不需要锁机制

    锁类型

    1.共享锁(shar locks)也称为读锁,s锁,共享数据,可以同时访问不允许修改。

    2.排他锁(Exclusive Lock)也称为写锁,X锁,该事物单独获得此资源,另一事务不能在此事务提交之前获得相同对象的共享锁获排他锁。

    DML锁 (DML LOCK):用来保护数据的完整 性和一致性。

    DDL锁(DDL LOCK):用来保护数据对象的结构,如表,索引等结构定义,

    内部锁和闩(internal locks and latchs):用来保护数据库内部数据结构。

    悲观锁:指读取数据后马上锁定相关资源

    语法:SELECT.....(查询语句后)FOR UPDATE[OF COLUMN_LIST][wait n|notwait]

    of子句用于制定即将更新的列,即锁定行上的特定列;

    wait子句制定等待其他用户释放锁的秒数,防止无限期的等待,NOWAIT表示不等待。

    会话1

    SELECT account_balance FROM topic7_account WHERE account_id=1001 FOR UPDATE; --悲观锁
    UPDATE topic7_account SET account_balance=account_balance-5000 WHERE account_id=1001;--提款5000
    commit;

    会话2

    UPDATE topic7_account SET account_balance=account_balance+500 WHERE account_id=1001;--存款500
    commit;

    注意:当 会话1运行并提交释放锁的时候会话2才执行完毕

    乐观锁:把所有锁定都延迟到即将执行更新之前

    (在更新语句后的WHERE子句增加条件查找到的旧值没有改变得情况下才能更改,否则更新失败)

    语法:UPDATE TABLE_NAME SET COLUMN_NAME1=NEWVALUE1,COLUMN_NAME2=NEWVALUE2...WHERE COLUMN_NAME1=OLDVALUE1 AND COLUMN_NAME2=OLDVALUE2...

    会话1

    --乐观锁
    SELECT * FROM topic7_account WHERE account_balance=1000;
    
    UPDATE topic7_account SET  account_balance=account_balance+300
    WHERE account_id=1001 AND account_balance=1000;
    COMMIT;

    会话2

    --乐观锁
    SELECT * FROM topic7_account WHERE account_balance=1000;
    
    UPDATE topic7_account SET  account_balance=account_balance+300
    WHERE account_id=1001 AND account_balance=1000;

    会话1执行乐观锁定,同时会话2更改了会话1中乐观锁的查找条件的时候会话1更新失败。

    DML锁:包含TX锁(事务锁或行级锁),TM锁(表级锁)

  • 相关阅读:
    Win(Phone)10开发第(7)弹,Extended Execution
    Win(Phone)10开发第(5)弹,本地媒体服务器的一些注意事项
    Win(Phone)10开发第(4)弹,HTTP 实时流播放 m3u8
    Win(Phone)10开发第(3)弹,简单的Demo程序网络请求json解析列表显示
    Win(Phone)10开发第(2)弹,导出APPX包并签名部署
    Win(Phone)10开发第(1)弹,桌面和手机的扩展API,还我后退键
    WP8里dll类库(SDK)实现多语言多主题
    Windows Phone中解决多模块多程序集之间相互循环引用的问题一种思路
    在继承中子类自动实现单例模式
    ansible---基础
  • 原文地址:https://www.cnblogs.com/lgxstudy/p/4217494.html
Copyright © 2011-2022 走看看