- 浏览: 887286 次
- 性别:
- 来自: 北京
文章分类
- 全部博客 (687)
- java (127)
- servlet (38)
- struts (16)
- spring (22)
- hibernate (40)
- javascript (58)
- jquery (18)
- tomcat (51)
- 设计模式 (6)
- EJB (13)
- jsp (3)
- oracle (29)
- RUP (2)
- ajax (3)
- java内存管理 (4)
- java线程 (12)
- socket (13)
- path (5)
- XML (10)
- swing (2)
- UML (1)
- JBPM (2)
- 开发笔记 (45)
- Note参考 (15)
- JAXB (4)
- Quartz (2)
- 乱码 (2)
- CSS (2)
- Exception (4)
- Tools (7)
- sqlserver (3)
- DWR (7)
- Struts2 (47)
- WebService (2)
- 问题解决收藏 (7)
- JBOSS (7)
- cache (10)
- easyUI (19)
- jQuery Plugin (11)
- FreeMarker (6)
- Eclipse (2)
- Compass (2)
- JPA (1)
- WebLogic (1)
- powerdesigner (1)
- mybatis (1)
最新评论
-
bugyun:
受教了,谢谢
java 正则表达式 过滤html标签 -
xiongxingxing_123:
学习了,感谢了
java 正则表达式 过滤html标签 -
wanmeinange:
那如果无状态的。对同一个任务并发控制怎么做?比如继承Quart ...
quartz中参数misfireThreshold的详解 -
fanjieshanghai:
...
XPath 元素及属性查找 -
tianhandigeng:
还是没明白
quartz中参数misfireThreshold的详解
SQL语句 表锁模式
select * from A 无
insert into A RX
update A RX
delete from A RX
select * from A for update RS
lock table A in row share mode RS
lock table A in row share exclusive mode RX
lock table A in share mode S
lock table A in share row exclusive mode SRX
lock table A in exclusive mode X
从以上可以看到,通常的DML操作(select ..for update,insert,update,delete),表级获得的只是意向锁(RS或RX).其真正封锁粒度还是在行级.另外,oracle数据库中单纯读数据不加锁,通过回滚段来保证用户不读"脏"数据.由于oracle在行级只提供X锁,所以与RS锁(通过select..for update语句获得)对应的行级锁也是X锁.当oracle执行select..for update,insert,update,delete等DML语句时,系统自动在所要操作的表上申请表级RS锁(select..for update)或RX锁(insert,update和delete),当表级锁获得后,系统再自动申请TX锁,并将实际锁定的数据行的锁标志位置位(指向该TX锁,更确切地说是指向该事务在该块中占用的ITL SLOT)
TX锁即事务锁,对应多个该事务锁定的数据行,若事务T对数据D加X锁,则其他任何事务都不能再对D加任何类型的锁,若加S锁,则其他事务只能对D加S锁,不能加X锁.
Oracle锁相关的视图
1)v$lock视图:此视图列出当前系统持有的或正在申请的所有锁的情况,字段说明如下:
sid:会话(session)标识
type:区分该锁保护对象的类型(只关心TX和TM)
id1:锁标识1
id2:锁标识2
lmode:锁模式:0(none),1(null),2(row share),3(row exclusive),4(share),5(share row exclusive)和6(exclusive)
request:申请的锁模式:具体值同上
ctime:已持有或等待锁的时间
block:是否阻塞其他锁申请
2)$locked_object视图:此视图列出当前系统中哪些对象正被锁定,字段说明如下:
xidusn:回滚段号
xidslot:槽号
xidsqn:序列号
object_id:被封锁对象标识
session_Id:持有锁的会话标识
oracle_username:持有该锁的用户的oracle用户名
os_user_name:持有该锁的用户的操作系统用户名
process:操作系统进程号
locked_mode:锁模式
ORACLE锁监控脚本:
1)显示哪些对象被哪些会话锁住
select rpad(oracle_username,10) o_name,session_id sid,decode(locked_mode,0,'None',1,'Null',2,'Rowshare',3,'Row Exclusive',4,'Share',5,'share row exclusive',6,'Exclusive') LOCK_TYPE,object_name,xidusn,xidslot,xidsqn from v$locked_object a,all_objects b where a.object_id=b.object_id;
2)观察获得与申请锁的顺序关系
select type||'_'||id1||'_'||id2 "resource",sid,lmode,request,ctime,block from v$lock where type in('TX','TM') order by "resource",ctime desc;
外键未加索引引发的锁阻塞
部分回滚对锁的影响
如果一个事务进行部分回滚(rollback to savapoint),由于会撤销部分修改,oracle会根据情况释放或降低某些TM表级锁,而TX锁一般不会释放,而被TX锁阻塞的事务也不会继续执行(即使那些引发阻塞的行的修改已经被回滚)
锁的排队机制
一旦某一事务阻塞于某一资源,其后向资源新申请锁的事务都将被阻塞,而不论新申请的封锁类型是否相容于已获得的封锁类型
ITL slot不足引发的锁阻塞:
Bitmap索引引发的锁阻塞
发表评论
-
在Oracle查询语句中怎样手动指定索引
2011-09-16 01:08 1237select /*+ index(tablename inde ... -
数据库范式(1NF 2NF 3NF BCNF)详解一
2011-08-28 13:35 4550数据库的设计范式是数据库设计所需要满足的规范,满足这些规范的数 ... -
数据库范式(1NF 2NF 3NF BCNF)详解二
2011-08-28 13:32 1337范式应用 我们来逐步搞定一个论坛的数据库,有如下信息: ... -
Oracle中NVARCHAR2和VARCHAR2的区别
2011-05-20 10:16 2856Oracle中NVARCHAR2和VARCHAR2的区别 【 ... -
Oracle中connect by prior用法
2011-03-08 17:18 887connect by prior 是结构化 ... -
【总结】oracle恢复误删除数据,解除锁定的等sql语句
2011-03-08 16:55 1074转载请注明出处:http://renjie120.iteye. ... -
授予oracle导入用户表权限
2010-12-13 15:38 1090给用户增加导入数据权 ... -
如何写批处理文件自动将数据导入oracle数据库
2010-12-13 14:30 3287Oracle数据库的自动导入 ... -
如何使用PLSQL Developer从oracle数据库 导入导出数据
2010-12-13 14:26 4117如何使用PLSQL Developer从oracle数据库 导 ... -
oracle内存优化
2010-12-01 21:54 969内存2G的优化策略。 SGA最大大小:1300 -
让sql语句不排序,按照in语句的顺序返回结果
2010-12-01 21:47 1748oracle写法: Select * from we ... -
拯救oracle刚被误删的数据
2010-12-01 21:43 10902.误删除所有记录并且提交更改。SQL>delete f ... -
强制停止oracle正在执行的job
2010-12-01 21:40 1972一:温柔的方法:1、查看所有job;select * from ... -
oracle中connect by prior实现递归查询
2010-12-01 14:15 1157收集的几条在oracle中通过connect by prior ... -
oracle高级查询实例,提升效率
2010-12-01 13:57 952使用Oracle特有的查询语法, 可以达到事半功倍的效果。 ... -
oracle DBA必需掌握的常用命令集锦
2010-12-01 13:39 985第一章:日志管理 1.forcing log swit ... -
Oracle性能优化技巧
2010-12-01 12:21 768今天没事来说说oracle性能优化的技巧。。 1.选用适合的 ... -
alce表空间使用情况查询
2010-12-01 12:16 8611.查询oracle表空间的使用情况 select b.f ... -
几条有用sql
2010-12-01 12:14 609查找数据库中所有字段 以对应的表 select C.colu ... -
SYS_REFCURSOR一例
2010-09-29 12:25 27241.看见很多人调试过程依然使用DBMS_OUTPUT.PUT_ ...
相关推荐
oracle数据库用户为何频繁被锁,oracle数据库用户频繁被锁原因排查oracle数据库用户为何频繁被锁
ORACLE数据库锁表问题浅析 Oracle数据库锁机制是企业级数据库管理系统中一个非常重要的机制。锁机制的主要目的是为了保证数据的一致性和正确性,在多用户同时访问数据库时,避免数据的不一致和错误。Oracle数据库锁...
### Oracle数据库、表空间及数据文件之间的关系 在Oracle数据库管理系统的架构中,数据库、表空间与数据文件之间存在着紧密的联系。理解这些组件之间的相互作用对于有效地管理和维护Oracle数据库至关重要。 #### ...
DML锁主要关注的是数据级别的锁控,包括TM锁(表级锁)和TX锁(事务锁或行级锁)。这些锁在执行DML(数据操纵语言)操作时自动触发,以确保数据在并发环境下的完整性和一致性。 ##### 1. TM锁:表级锁 TM锁是针对...
oracle数据库导入、导出数据、创建表空间、创建用户、用户授权等操作
Oracle 数据库实例用户表空间之间的关系 Oracle 数据库实例用户表空间之间的关系是 Oracle 数据库管理系统的核心概念。了解它们之间的关系对于数据库的设计、管理和优化至关重要。 数据库 Oracle 数据库是一个...
2. **TM锁(表级锁)**:这是一种更高层次的锁,通常用于锁定整个表,防止其他用户或事务访问该表。这种锁可以由DBA手动设置,例如在进行大表的备份或维护操作时,可以使用`ALTER TABLE`命令加上`SHARE`或`EXCLUSIVE...
表级锁(TM锁)是数据库管理系统中用于控制并发访问的一种锁定机制,它主要用于多用户环境下的数据库系统,以防止不同事务之间的数据冲突。在Oracle数据库中,TM锁是一种在表级别的锁定,它确保在事务处理过程中,...
总结来说,"Oracle数据库表结构导出工具Excel"通过DBExport软件实现,能够有效地帮助数据库管理员和开发人员快速获取和分享Oracle数据库的表结构信息。通过阅读DBExport的使用手册,用户可以学会如何利用这个工具...
《Oracle 12c数据库基础教程》教学课件—03Oracle数据库管理工具.pdf《Oracle 12c数据库基础教程》教学课件—03Oracle数据库管理工具.pdf《Oracle 12c数据库基础教程》教学课件—03Oracle数据库管理工具.pdf《Oracle...
在开发、文档编写或分享数据库设计时,有时我们需要将Oracle表结构导出到更便于阅读和分享的格式,比如Microsoft Word文档。这个过程可以帮助团队成员更好地理解数据库结构,也可以作为备份或审计的参考。 "oracle...
Oracle数据库表结构导出器是一套用来完成将Oracle数据库中的表结构导出成Word文档,并输出标准的打印报表格式的软件。亲测oracle绝对好使 ,另附有链接信息,请先看好说明再操作.不会的加我qq87611894
Oracle数据库是世界上最流行的数据库管理系统之一,它被广泛用于企业级数据存储和管理。在开发基于.NET框架的应用程序,特别是使用C#语言时,通常需要将数据库中的表结构映射到C#对象,这些对象被称为实体类。这有助...
要查看登录 Oracle 数据库的用户记录,可以创建一个临时日志表,并建立一个数据库表触发器来记录用户的登录行为。 创建临时日志表 首先,需要创建一个临时日志表来存储用户的登录记录。可以使用以下 SQL 语句来...
【Oracle数据库大作业】是一个关于Oracle数据库在教务管理系统中的应用项目,可能涵盖了数据库设计、实施、优化等多个方面的内容。这个大作业包含了PPT演示文稿、Word文档以及可能的源代码,为学习者提供了全面了解...
Oracle数据库是全球广泛使用的大型关系型数据库管理系统之一,其强大的功能和稳定性使其在企业级应用中占据了重要地位。本文将详细解析Oracle数据库的体系结构,帮助读者深入理解其内部工作原理。 Oracle数据库的...
Oracle 是一种关系数据库管理系统,广泛应用于企业级应用中。在实际项目中,数据备份和恢复是非常重要的工作。本文将介绍如何使用 Java 语言将 Oracle 数据库数据导出到文件中,并将其导入到 Oracle 数据库中。 从...
Oracle数据库是一种广泛应用于企业和组织的大型关系型数据库管理系统,它提供了高效的数据存储、管理和查询功能。...通过完成这些大作业,学生可以深入理解Oracle数据库的工作原理及其在企业级应用中的重要性。