解决方案 »

  1.   

    等待锁:一个事务对一个数据表进行ddl或者dml操作时,系统会对该表加上表级的排它锁,这时候其他事务对该表进行操作的时候会等待这个事务提交或回滚后才能继续操作。
    在两个SQL窗口先后对数据库中的一条语句进行更新操作不提交事务。后一个执行的就回处于等待状态。这时候提交前一个事务,两个更新操作都提示完成。
    分别在两个窗口查询该表,会发现同一条记录显示的结果不同,再打开一个SQL窗口查询到的结果和是第一个事务提交后的结果。也就是读操作不会发生等待锁。
      

  2.   

    oracle中没有读锁,你的意思是不是想一个人在读,其他人就不能再读了,还是不能其他操作了。。
      

  3.   


    请问“需要写过程控制”这句话怎么理解,能否举个例子么?多谢了~http://www.itpub.net/thread-995175-1-1.html
      

  4.   

    一个事务T在修改一条记录的时候(T1未提交)其他事务T2对这条记录进行读取操作,这时候T2是不会等待T1事务完成的吧。ORACLE不会读脏数据所以T2的读应该不会等待而直接返回T1事务修改之前的数据。
    应该是这样子对吧?
      

  5.   

    一个事务T在修改一条记录的时候(T1未提交)其他事务T2对这条记录进行读取操作,这时候T2是不会等待T1事务完成的吧。ORACLE不会读脏数据所以T2的读应该不会等待而直接返回T1事务修改之前的数据。
    应该是这样子对吧?这个是的  难道你是这个意思么 囧囧,T1未提交,T2读肯定是没问题的,不能修改T1被锁定的记录
      

  6.   

    修改时锁不会影响其他session查询。。
    只不过查询出来的是修改前的数据。。
    但是另一个session不能对其进行修改。。因为已经被锁定。。