当前位置:数据库 > Oracle >>

Oracle锁和阻塞

Oracle锁和阻塞
 
1.没有并发,就没有锁。
在数据库中,并发的意思是超过两个(含)以上的用户对同样的数据进行修改(包括插入、修改、删除),并行的意思是将一件事情分成很多小的部分,让每一部分同时执行,最后将执行结果进行汇总。并发和并行是不同的,没有并发,就没有锁。这里主要介绍TM锁和TX锁。
       其实,TM锁更像是一个段级的锁,通常我们叫它表锁,是因为我们把这个表看成了一个段。当某个表中有几个段的时候,可能一个段上有TM锁,而另外的段中没有TM锁(可以进行DDL操作)。TX锁实际上应该叫做事务锁,它主要是为了维护是事务的一致性,从这个角度来看,TX锁并非都是在对数据进行修改时才产生的,只要需要维护事务的一致性,就需要用到该锁。例如分布式事务,一般来说就是通过dblink在几个数据库中处理数据,因为是分布式的操作方式,所以需要一个事务的总协调者,这时候即使都是读取操作,依然需要一个TX锁来维护事务的一致性。
    Oracl中锁的信息是数据库的一个属性,是物理的,并不是逻辑上属于某个表或者某个行。在TX锁中,id1和id2构成了事务在回滚段中的位置。它(id1和id2)的用处是,当其他操作需要读取这个数据块时,会发现这个数据块上有活动的事务,因此需要到回滚段中去找该数据库之前的内容,那么这些内容在回滚段的什么地方?这两个值就告诉了你。对于TM锁,id1就是加锁的段对象,可以是一个表或者表上的一个分区,id2一般为0。
 
 
 
2.select  for update (no wait)
 
 
 
3.外键和索引
如果系统中有主、外键引用关系,并且满足以下情况之一,那么就应该考虑在外键字段中创建索引,以提高系统性能。
*主表上有频繁的删除操作
*主表上有频繁的修改操作
*业务上经常对主表和从表进行关联查询
 
Oracle
MySQL
Access
SQLServer
DB2
Excel
SQLite
SYBASE
Postgres
如果你遇到数据库难题:
请访问www.zzzyk.com 试试
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,