Oracle DML 锁类型
1. exclusive 排它锁:阻止其它会话加排它锁和共享锁.
2. share 共享锁:阻止其它会话加排它锁.
DML锁分为表级与行级
表级锁包括:
lock table t1 in exclusive mode; // 6
lock table t1 in share mode; // 4
行级锁包括:
lock table t1 in row share mode; //2 行级共享锁(共享更新锁)
lock table t1 in row exclusive mode; //3 行级排它锁
对于2:
行级共享锁的会话能阻止其它会话已被共享锁锁定的行数持有排它锁.
对于3:
行级排它锁的会话能更新锁定的行数,其它会话更新会被挂起.
对于4:
表级共享锁的会话能阻止其它会话持有排它锁.
对于6:
表级排它锁的会话能阻止其它会话持有排它锁和共享锁.
ORACLE 事务隔离级别:
隔离级别定义了事务与事务之间的隔离程度.隔离级别与并发性是互为矛盾的:隔离程度越高,数据库的并发性越差;隔离程度越低,数据库的并发性越好。
1) read committed
这是ORACLE缺省的事务隔离级别.
2) serializable
允许在本事务中进行DML操作.
3) read-only
不允许在本事务中进行DML操作.
脏读 不可重复读 幻读
read committed 不可能 可能 可能
serializable 不可能 不可能 不可能
设置隔离级别:
设置事务的隔离级别
SET TRANSACTION ISOLATION LEVEL READ COMMITTED;
SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
SET TRANSACTION READ ONLY;
设置会话的隔离级别
ALTER SESSION SET ISOLATION_LEVEL SERIALIZABLE;
ALTER SESSION SET ISOLATION_LEVEL READ COMMITTED;
查询死锁:
-- 查询死锁
SELECT S.USERNAME,l.OBJECT_ID,l.SESSION_ID,s.SERIAL#,l.ORACLE_USERNAME,l.OS_USER_NAME,l.PROCESS FROM V$LOCKED_OBJECT l,V$SESSION S WHERE l.SESSION_ID=S.SID;
SELECt * FROM v$locked_object WHERE SESSION_ID = '14'; --SESSION_ID
-- 查询会话详细信息
SELECT SID,SERIAL#,PADDR FROM V$SESSION WHERE SID='11'; --SID
-- 结束会话
ALTER SYSTEM KILL SESSION '11, 21'; --SID, SERIAL#
-- 查询进程ID,Oracle 每个会话都会有一个进程对应
SELECT SPID FROM V$PROCESS WHERE ADDR='2F0830DC'; --PADDR
-- 结束进程
KILL -9 2964 --SPID
分享到:
相关推荐
在Oracle数据库中,DML锁主要包括TM锁和TX锁,其中TM锁称为表级锁(用来保证表的结构不被用户修改),TX锁称为事务锁或行级锁。当Oracle执行DML语句时,系统自动在所要操作的表上申请TM类型的锁。当TM锁获得后,系统...
### Oracle 锁机制问题详解 #### 一、引言 在多用户数据库环境中,当多个用户尝试同时访问或修改同一份数据时,就需要通过锁机制来确保数据的一致性和完整性。Oracle 数据库提供了多种类型的锁来支持事务隔离级别,...
关于oracle锁以及并发的详细描述。
以下是对Oracle锁机制的详细解释: 1. **锁的存在原因**: - 并发控制:在多用户环境下,多个事务可能同时访问相同的数据,锁用于防止冲突,确保每个事务看到的是一个一致的数据视图。 - 数据一致性:通过锁,...
Oracle的锁机制是数据库管理系统中一个关键的组成部分,它的主要目标是确保在多用户环境下,数据的读一致性、完整性和并行性。Oracle提供了多种类型的锁来满足这些需求。 首先,按照是否独占,锁分为排它锁(X锁)...
Oracle数据库多粒度锁机制介绍概述.内容简单易懂,容易掌握
#### Oracle锁的类型与模式 1. **行级锁**:当一个事务尝试修改某一行时,Oracle会自动对该行加锁,阻止其他事务同时修改同一行。这种锁称为行级锁,是最细粒度的锁。 2. **表级锁**:在某些情况下,整个表可能被...
Oracle数据库的锁机制是确保多用户并发访问时数据一致性的重要工具。在数据库环境中,当多个事务同时尝试访问和修改同一数据对象时,如果没有适当的控制,可能会导致数据的不一致性和并发问题。为了解决这些问题,...
oracle数据库锁机制常备大家所诟病,希望对学习者有帮助,大家自觉学习
#### 一、Oracle锁机制简介 在Oracle数据库中,锁是一种重要的并发控制机制,用于管理多个用户对同一数据资源的访问。通过锁机制,Oracle能够确保数据的一致性和完整性,避免多用户操作时可能出现的数据冲突问题。 ...
总结,Oracle锁机制是数据库并发控制的核心,理解并熟练掌握锁的使用和管理对于优化数据库性能、避免并发问题至关重要。通过使用适当的工具和技巧,我们可以有效地监控和解决锁相关问题,从而提高系统的稳定性和响应...
总之,Oracle锁机制是其并发控制的核心,通过精细的锁类型和模式,Oracle能够在保证数据一致性的同时,支持多个并发事务高效地访问数据库资源。了解并掌握Oracle锁的原理和应用,对于优化数据库性能和解决并发问题至...
oracle并发和锁机制,oracle并发锁,oracle锁
### Oracle锁机制详解 #### 锁的基本概念与作用 锁机制是Oracle数据库中用于管理并发访问共享资源的关键组件。在多用户环境中,确保数据的一致性和完整性至关重要,尤其是在多个会话试图同时修改相同数据的情况下...
ORACLE 锁机制和 V$LOCK 视图分析 Oracle 数据库为了实现并发操作,使用了锁机制来控制对数据的访问。锁机制是 Oracle 数据库并发控制的核心机制之一。锁机制能够有效地防止多个用户同时访问同一个数据项,避免了...