开发者社区> 问答> 正文

oracle锁表原因有哪些?解决思路?

zhanginzaghi 2017-11-13 09:50:36 1773

oracle锁表原因有哪些以及解决思路

Oracle 关系型数据库
分享到
取消 提交回答
全部回答(2)
  • inzaghi1984
    2019-07-17 21:43:30
    已采纳

    1、锁表的原理:数据库使用独占式封锁机制,当执行上面的语句时,对表进行锁住,直到发生commite 或者 回滚 或者退出数据库用户
    2、主要的锁表原因有:
    (1) A程序执行了对 tableA 的 insert ,并还未 commite时,B程序也对tableA 进行insert 则此时会发生资源正忙的异常 就是锁表
    (2)锁表常发生于并发而不是并行(并行时,一个线程操作数据库时,另一个线程是不能操作数据库的,cpu 和i/o 分配原则)
    3、减少锁表的概率方法:
    (1)减少insert 、update 、delete 语句执行 到 commite 之间的时间。具体点批量执行改为单个执行、优化sql自身的非执行速度
    (2)如果异常对事物进行回滚

    2 0
  • dbexp
    2019-07-17 21:43:30

    ddl锁,dml锁

    0 0
添加回答
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

推荐文章
相似问题
推荐课程