开发者社区> 问答> 正文

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

已解决

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

展开
收起
zhanginzaghi 2017-11-13 09:50:36 9207 0
2 条回答
写回答
取消 提交回答
  • 金融IT技术人员
    采纳回答

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

    2019-07-17 21:43:30
    赞同 2 展开评论 打赏
  • 比较熟悉的数据库:Oracle、PostgreSQL、Mysql、Mongodb、Redis 了解的数据库:Monetdb、influxdb、leveldb等。

    ddl锁,dml锁

    2019-07-17 21:43:30
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
PostgresChina2018_樊文凯_ORACLE数据库和应用异构迁移最佳实践 立即下载
PostgresChina2018_王帅_从Oracle到PostgreSQL的数据迁移 立即下载
Oracle云上最佳实践 立即下载