oracle锁的概念1

Posted pakichan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle锁的概念1相关的知识,希望对你有一定的参考价值。

1、锁是什么

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

加锁是实现数据库并发的一个很重要的技术,当事务在对某个对象数据进行操作的时前,系统会先收到请求,对其加锁,枷锁后事务对该数据对象有了控制,在该事务释放锁之前。其他的事务不能对此数据对象进行更新操作。

可防止多个会话同时更改统一数据

是在指定语句的最低可能级别自动获取的

2、锁的分类

 2.1DML锁:

 数据锁:保护数据,修改数据

 表级锁(TM锁)、事务锁或者行级锁(TX锁)

 加锁方式:

 a、共享锁,用于TM锁

 b、独占锁:用于TM锁

 c、共享更新锁 用于TX锁

2.2 DDL锁:

 修改结构

 保护struture of schme objects:表和试图的相关定义。

2.3SYSTEM锁

 数据库级的,内存级的,latch

 latch:内存中的资源锁

 lock:数据库对象(表、索引等)锁

 

导致latch争用而等待的原因很多,内存中很多资源都可能存在争用。

常见的两类:

共享池中的latch争用

数据缓存池latch争用

最常见的集中共享池里的latch 是library cache

select * from v$latchname where name like ‘library cache%‘;

资源的争用可以通过如下sql来查看:

select event,count(*) from v$session_wait group by event;

数据缓冲池latch争用 最常见的latch争用有:

(1)buffer busy waits

(2)cache buffer chain

 

以上是关于oracle锁的概念1的主要内容,如果未能解决你的问题,请参考以下文章

16lock

Oracle中的锁

Oracle中的锁

查看oracle锁的表名

oracle 锁表、解锁的语句

oracle学习笔记 锁基础原理