C/S架构,多点网络VPN系统。  
同一时间有多个点在进行较频繁的数据查询时(查询的表也是频繁在进行数据更新的表),如果不做特殊处理,这会影响到其它点的数据更新速度吗?  
比如:有5个点在对表A进行数据查询,每个查询的时间都很长,大概10分钟左右。同时有10个点进行数据提交,每个点要向表A插入约100条数据。是不是这10个点提交速度会受到查询的影响?  

解决方案 »

  1.   

    肯定会的啊,oracle的处理插入操作时是锁定表的
      

  2.   

    oracle的锁机制和sqlserver不一样的,即使锁住了表也不会影响查询,当然如果是锁行就更加不会了,(我记得sqlserver好像是不行),oracle的实现方式不一样,是通过SCN保证版本的,每次执行一个sql实际是在一个数据的某个版本上执行。你的更新没有提交,更本不会影响对当前版本的数据查询
      

  3.   

    可以做个例子:
    select * from a for update;
    不要提交事务,
    然后再在另一个进程中执行select * from a;
    肯定是可以执行的