Oracle锁庞大介绍
根源:网海拾贝
ORACLE数据库是现今数据库范围运用最遍及的,同时它也是一个庞大的体系,片面认识它、玩转它不仅必要肯定的现实知识,更必要开发经历与工程经历。自己是ORACLE一爱好者,以下是自己对ORACLE锁的一些经历,但愿能与大师共同分享。
筹办知识:
DDL(DATABASE DEFINITION LANGUAGE):数据库定义语言,如create table、drop table..... DML(DATABASE MODIFICATION LANGUAGE):数据库编削语言,如insert、delete、update...... 参考资料:Oracle8 Administrator"s Guide, Release 8.0 Oracle8 Tuning, Release 8.0
ORACLE锁具体分为以下几类:
1.按用户与体系别离,可以分为自动锁与显示锁
自动锁:当终了一项数据库操作时,缺省征象下,体系自动为此数据库操作获得知数有必要的锁。
显示锁:某些征象下,必要用户显示的锁定数据库操作要用到的数据,本事使数据库操作实行得更好,显示锁是用户为数据库对象设定的。
2.按锁级别别离,可分为共享锁与排它锁
共享锁:共享锁使一个事件对特定数据库资本终了共享造访——另一事件也可对此资本终了造访或获得类似共享锁。共享锁为事件供应高并发性,但如拙劣的事件方案 共享锁容易形成作古锁或数据更新丢失。
排它锁:事件设置排它锁后,该事件独自获得此资本,另一事件不克不及在此事件提交之前获得类似对象的共享锁或排它锁。
3.按操作别离,可分为DML锁、DDL锁
DML锁又可以分为,行锁、表锁、作古锁
-行锁:当事件实行数据库拔出、更新、删除操作时,该事件自动获得操作表中操作行的排它锁。
-表级锁:当事件获得行锁后,此事件也将自动获得该行的表锁(共享锁),以防备别的事件终了DDL语句影响记实行的更新。事件也可以在终了历程中获得共享锁或排它锁,只要当事件显示行使LOCK TABLE语句显示的定义一个排它锁时,事件才会获得表上的排它锁,也可行使LOCK TABLE显示的定义一个表级的共享锁(LOCK TABLE具体用法请参考相关文档)。
-作古锁:当两个事件必要一组有斗嘴的锁,而不克不及将事件持续下去的话,就呈现作古锁。
如事件1在表A行记实#3中有一排它锁,并等候事件2在表A中记实#4中排它锁的释放,而事件2在表A记实行#4中有一排它锁,并等候事件1在表A中记实#3中排它锁的释放,事件1与事件2彼此等候,因而就形成了作古锁。作古锁通俗是因拙劣的事件方案而孕育产生。
作古锁只能行使SQL下:alter system kill session "sid,serial#";大要行使相关操作体系kill历程的呼吁,如UNIX下kill -9 sid,大要行使别的对象杀失作古锁历程。
DDL锁又可以分为:排它DDL锁、共享DDL锁、分解锁
-排它DDL锁:设立建设、编削、删除一个数据库对象的DDL语句获得操作对象的 排它锁。如行使alter table语句时,为了维护数据的完成性、分比如性、正当性,该事件获得一排它DDL锁。
-共享DDL锁:需在数据库对象之间树立彼此请托相关的DDL语句但凡需共享获得DDL锁。
如设立建设一个包,该包中的历程与函数援用了不合的数据库表,当编译此包时,该事件就获得了援用表的共享DDL锁。
-分解锁:ORACLE行使共享池存储分解与优化过的SQL语句及PL/SQL顺序递次,使运转类似语句的运用速率更快。一个在共享池中缓存的对象获得它所援用数据库对象的分解锁。分解锁是一种怪异的DDL锁范例,ORACLE行使它追踪共享池对象及它所援用数据库对象之间的请托相关。当一个事件编削或删除了共享池持有分解锁的数据库对象时,ORACLE使共享池中的对象取消,下次在援用这条SQL/PLSQL语句时,ORACLE从新分解编译此语句。
4.外部闩锁
外部闩锁:这是ORACLE中的一种非凡锁,用于顺序递次造访外部体系构造。当事件需向缓冲区写入信息时,为了行使此块内存地区,ORACLE起首必须获得这块内存地区的闩锁,本事向此块内存写入信息。
版权声明: 原创作品,应许转载,转载时请务必以超链接情势标明文章 原始来由 、作者信息和本声明。不然将深究功令责任。
转载于:https://www.cnblogs.com/zgqjymx/archive/2011/03/07/1976294.html
Oracle锁庞大介绍相关推荐
- oracle什么是全局锁,深入浅出oracle锁---原理篇
这几天项目中遇到了数据库锁的问题,还在解决中,找到了一篇原理性的文章,分享一下. 在现代的多用户多任务系统中,必然会出现多个用户同时访问共享的某个对象,这个对象可能是表,行,或者内存结构,为了解决多个 ...
- 深入浅出oracle锁原理篇
在现代的多用户多任务系统中,必然会出现多个用户同时访问共享的某个对象,这个对象可能是表,行,或者内存结构,为了解决多个用户并发性访问带来的数据的安全性,完整性及一致性问题,必须要有一种机制,来使对这些 ...
- Linux--自旋锁(介绍及API简介)
Linux--自旋锁(介绍及API简介) 1.概念 2.自旋锁的使用 2.1.自旋锁 API 函数 2.2.自旋锁的死锁情况 1. 2. 2.1.解决方式 自旋锁使用注意事项 1.概念 何谓自旋锁?它 ...
- oracle 分析锁,ORACLE锁机制分析
Oracle 多粒度锁机制介绍 根据保护对象的不同,Oracle数据库锁可以分为以下几大类: (1) DML lock(data locks,数据锁):用于保护数据的完整性: (2) DDL lock ...
- Oracle锁表解决方法的详细记录详解
一淘模板网给大家带来了关于Oracle的相关知识,在开发Oracle数据库时,我们常遇到频繁操作的Oracle数据表,会出现Oracle锁表,下面给大家介绍了关于Oracle锁表解决方法的相关资料,希 ...
- oracle锁表后,系统能否自动解锁?
oracle锁表后,系统能否自动解锁?(急) [问题点数:100分] 不显示删除回复 显示所有回复 显示星级回复 显示得分回复 只显示楼主 收藏 关注 zyxgy zyxgy 本版等级: 结帖率:30 ...
- oracle+锁+杀不死,oracle kill -9 会话
ORACLE快速彻底Kill掉的会话 - 潇湘隐者 - 博客园 2014年10月19日 在ORACLE数据库当中,有时候会使用ALTER SYSTEM KILL SESSION 'sid,serial ...
- 各种Oracle索引类型介绍
各种Oracle索引类型介绍 逻辑上: Single column 单行索引 Concatenated 多行索引 Unique 唯一索引 NonUnique 非唯一索引 Function-based函 ...
- Oracle认证考试介绍
Oracle认证考试介绍 top↑ Oracle认证考试由Oracle公司授权国际考试认证中心对考生进行资格认证的.考生按考试标准要求参加几门课程的考试(一般为三至五门),在通过全部考试后,将获得OC ...
最新文章
- 流程图函数’怎么画_原来函数可以这么美!
- 【Linux】无法添加用户,报“useradd: cannot open /etc/passwd”问题解决过程记录
- EditPlus正则表达式
- 计算机风冷散热系统的原理,显卡“发烧”的原因_显卡散热原理
- BZOJ 4044 Luogu P4762 [CERC2014]Virus Synthesis (回文自动机、DP)
- 软件工程第一周-评论三部软件作品
- MoveNet 姿态估计,树莓派上也能跑!
- Docker生态技术链
- 阶段3 2.Spring_06.Spring的新注解_5 spring的新注解-PropertySource
- python 做界面时如何使图片保持透明背景_Python利用matplotlib生成图片背景及图例透明的效果...
- Android学习资料整理
- 【搜索】训练E - Crazy Robot
- uva 12304(圆的相关函数模板)
- SVG (SVG的概念 、SVG 实例 、SVG 在HTML中 、SVG 矩形 、SVG 圆形 、SVG 椭圆 、SVG 直线 、SVG 多边形、svg验证码 )
- 中国没有真正意义上的海滩比基尼(图)
- less 使用入门教程
- 集成环信easeUI添加联系人详情页面ListView的显示处理步聚
- Android Remote Views
- 13种Java核心技术
- 程序员如何打造薪资15k
热门文章
- oracle:oracle学习案例(五):基础练习
- Oracle中CHAR类型不足位数时,用空格自动补足位数
- 【java】浅析JDK中ServiceLoader的源码
- 【Flink】Flink 基于 MailBox 实现的 StreamTask 线程模型
- 【Elasticsearch】class_cast_exception KeywordFieldMapper cannot be cast to ObjectMapper
- 【Redis】redis 哨兵模式
- 【Spring】Spring 深入理解注解及spring对注解的增强
- 【Elasticsearch】 elasticsearch之Recovery
- IDEA卡顿问题解决-加大内存
- flink 1.8编译:flink-fs-hadoop-shaded找不到