多个服务器对同一数据库的同一个表的同一条记录的同一个字段进行更新,会产生锁表吗?
就是oracle在更新某一条记录的时候,会先锁定这条记录再更新,如果2个update完全同时执行锁记录,有问题吗?

解决方案 »

  1.   

    update会加锁,如果是两个session同时update,某个session会获得锁,并且在提交(commit)之前都会保持锁定,另一个session的update就会等待,直到第一个session提交。
      

  2.   

    你的问题涉及到oracle行级锁的问题
    严格讲oracle的行级锁不是锁定机制
    也就是有锁的功能、却没有锁的开销
    所以你的这句话“会先锁定这条记录再更新,如果2个update完全同时执行锁记录”提问时有问题的
    两个事务同时update一行,也只是在行头上放上一个标志,他们会互相阻塞他人的也是TX锁,而不是什么莫名其妙的行级锁
    因为根本不存在行级锁