`
zzhonghe
  • 浏览: 243679 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Oracle的锁

    博客分类:
  • DB
 
阅读更多

Oracle的锁是行锁,实现方式是在块上进行标识锁状态,因此几乎没有相关的开销,锁定1行和锁定1百万行的开销几乎是一样的。

 
由于Oracle的并发和多版本的实现,存在丢失更新的文件,需要代码手工去避免,这也是出于性能的考虑,让Oracle天然具有读写分离的特性。
 
悲观锁:  select for update nowait.
nowait的区别在于其他线程对于相同资源的访问并不会进行等待,而是立刻返回。
 
乐观锁:  表里面加上versionID来控制不同线程的修改。
 
或者使用虚拟列,这个虚拟列是Hash值,基本不会带来任何开销
select name, location, ora_hash(name||'\'||location) from people
 
 
死锁:
 
头号原因是:  外键没有加索引
父子表关系的情形中,删除主表的PrimaryKey行,子表会有升级到表锁。
 
Scenario:
先修改子表,锁住一行记录
然后修改父表,删除一行记录, 这时需要再次锁定子表全表, 由于子表已经锁住,这样就形成了死锁。
 
所以外键加索引是非常重要的。
 
 
第二原因:     位图索引遭遇到并发更新
位图索引是基于全表数据的索引, 所以更新任意一行都是锁住全部索引
 
整体来说, Oracle发生死锁一般都是被升级到了表锁
 
 
Latch
用于协调共享数据,对象和文件的多用户访问。  分配到了Latch才可以访问数据, 如果没有分配到,那么会话会睡眠一段时间,然后再次尝试。对Latch的竞争会导致性能下降。
 
对于Oracle来说,没有用prepareStatement而导致的硬解析会导致大量的Latch被占用,从而让数据库的整体性能下降数量级。

 

0
0
分享到:
评论

相关推荐

    oracle锁表查询oracle锁表查询oracle锁表查询

    oracle锁表查询oracle锁表查询oracle锁表查询oracle锁表查询

    oracle解锁,死锁

    oracle解锁,死锁oracle解锁,死锁oracle解锁,死锁oracle解锁,死锁oracle解锁,死锁oracle解锁,死锁oracle解锁,死锁oracle解锁,死锁oracle解锁,死锁oracle解锁,死锁oracle解锁,死锁

    oracle解锁语句.txt

    oracle解锁语句,常用解锁语句,经过测试实用;oracle解锁语句,常用解锁语句,经过测试实用。

    oracle锁的概念

    oracle锁的概念,oracle锁的分类,oracle锁的级别,oracle解锁方法

    oracle锁表和解锁语句示例.sql

    oracle锁表和解锁语句示例。

    oracle锁表处理

    处理oracle 锁争用。11111111111111111111

    oracle 锁的概念

    oracle锁的概念,锁的分类及各锁之间的区别

    ORACLE解锁方法的一点资料

    ORACLE解锁方法的一点资料分享。

    oracle锁机制探讨

    在Oracle数据库中,DML锁主要包括TM锁和TX锁,其中TM锁称为表级锁(用来保证表的结构不被用户修改),TX锁称为事务锁或行级锁。当Oracle执行DML语句时,系统自动在所要操作的表上申请TM类型的锁。当TM锁获得后,系统...

    Oracle锁表处理,Oracle表解锁

    数据库死锁的概念, 所谓死锁,是指两个会话,每个会话都持有另外一个会话想要的资源,因争夺资源而造成...对于锁死的会话,我们可以直接删掉该会话,等事物回滚完成,也可以找出锁死进程的spid,从服务器中删掉该进程。

    oracle锁表sql

    oracle 查看锁表sql 及如何解锁,多给点分,为了下载别的资料。大家相互学习相互进步

    Oracle 锁机制问题详解

    详细介绍了Oracle中各种锁的机制原理及解锁方法

    oracle 解锁表

    oracle 解锁表,可以用此字句,对表进行解锁,但是要有相应的权限

    oracle解锁软件

    Oracle 解锁小软件,希望对大家有用

    Oracle锁和表分区

    锁和表分区介绍 Oracle锁分类,表分区分类

    ORACLE锁深入分析

    1.什么是ORACLE锁 数据库是一个多用户使用的共享资源。当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况。若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数据库的一致性...

    oracle锁机制研究

    oracle锁机制研究

    oracle锁机制

    关于oracle锁以及并发的详细描述。

Global site tag (gtag.js) - Google Analytics