知识大全 ORACLE 锁

Posted 数据库

篇首语:夫学须志也,才须学也。非学无以广才,非志无以成学。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 ORACLE 锁相关的知识,希望对你有一定的参考价值。

ORACLE 锁  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  ORACLE数据库是现今数据库领域应用最广泛的 同时它也是一个庞大的系统 全面了解它 玩转它不但需要一定的理论知识 更需要开发经验与工程经验 本人是ORACLE一爱好者 以下是本人对ORACLE锁的一些经验 希望能与大家共同分享     预备知识       DDL(DATABASE DEFINITION LANGUAGE) 数据库定义语言 如create table drop table     DML(DATABASE MODIFICATION LANGUAGE):数据库修改语言 如insert delete update     参考资料 Oracle Administrator s Guide Release         Oracle Tuning Release       ORACLE锁具体分为以下几类      按用户与系统划分 可以分为自动锁与显示锁      自动锁 当进行一项数据库操作时 缺省情况下 系统自动为此数据库操作获得所有有必要的锁       显示锁 某些情况下 需要用户显示的锁定数据库操作要用到的数据 才能使数据库操作执行得更好 显示锁是用户为数据库对象设定的      按锁级别划分 可分为共享锁与排它锁      共享锁 共享锁使一个事务对特定数据库资源进行共享访问——另一事务也可对此资源进行访问或获得相同共享锁 共享锁为事务提供高并发性 但如拙劣的事务设计+共享锁容易造成死锁或数据更新丢失       排它锁 事务设置排它锁后 该事务单独获得此资源 另一事务不能在此事务提交之前获得相同对象的共享锁或排它锁      按操作划分 可分为DML锁 DDL锁      +DML锁又可以分为 行锁 表锁 死锁         行锁 当事务执行数据库插入 更新 删除操作时 该事务自动获得操作表中操作行的排它锁          表级锁 当事务获得行锁后 此事务也将自动获得该行的表锁(共享锁) 以防止其它事务进行DDL语句影响记录行的更新 事务也可以在进行过程中获得共享锁或排它锁 只有当事务显示使用LOCK TABLE语句显示的定义一个排它锁时 事务才会获得表上的排它锁 也可使用LOCK TABLE显示的定义一个表级的共享锁(LOCK TABLE具体用法请参考相关文档)          死锁 当两个事务需要一组有冲突的锁 而不能将事务继续下去的话 就出现死锁           如事务 在表A行记录# 中有一排它锁 并等待事务 在表A中记录# 中排它锁的释放 而事务 在表A记录行# 中有一排它锁 并等待事务; 在表A中记录# 中排它锁的释放 事务 与事务 彼此等待 因此就造成了死锁 死锁一般是因拙劣的事务设计而产生 死锁只能使用SQL下:alter system kill session sid serial# 或者使用相关操作系统kill进程的命令 如UNIX下kill sid 或者使用其它工具杀掉死锁进程       +DDL锁又可以分为 排它DDL锁 共享DDL锁 分析锁         排它DDL锁 创建 修改 删除一个数据库对象的DDL语句获得操作对象的 排它锁 如使用alter table语句时 为了维护数据的完成性 一致性 合法性 该事务获得一排它DDL锁          共享DDL锁 需在数据库对象之间建立相互依赖关系的DDL语句通常需共享获得DDL锁     如创建一个包 该包中的过程与函数引用了不同的数据库表 当编译此包时 该事务就获得了引用表的共享DDL锁          分析锁 ORACLE使用共享池存储分析与优化过的SQL语句及PL/SQL程序 使运行相同语句的应用速度更快 一个在共享池中缓存的对象获得它所引用数据库对象的分析锁 分析锁是一种独特的DDL锁类型 ORACLE使用它追踪共享池对象及它所引用数据库对象之间的依赖关系 当一个事务修改或删除了共享池持有分析锁的数据库对象时 ORACLE使共享池中的对象作废 下次在引用这条SQL/PLSQL语句时 ORACLE重新分析编译此语句      内部闩锁      内部闩锁 这是ORACLE中的一种特殊锁 用于顺序访问内部系统结构 当事务需向缓冲区写入信息时 为了使用此块内存区域 ORACLE首先必须取得这块内存区域的闩锁 才能向此块内存写入信息       以上是 本人对ORACLE锁的一些总结 不足之处还望大家海涵 同时也希望大家多提出自己对ORACLE锁的一些看法 cha138/Article/program/Oracle/201311/16769

相关参考

知识大全 我对ORACLE数据锁的一点体会

我对ORACLE数据锁的一点体会  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  我对文章中意向锁

知识大全 查找 Oracle 用户锁的DLL SQL

查找Oracle用户锁的DLLSQL  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  查找Orac

知识大全 解析Oracle多粒度锁的验证步骤

解析Oracle多粒度锁的验证步骤  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  创建测试表  

知识大全 oracle加锁

  加锁是为了防止一些操作而进行的比如说共享锁可以防止别的事务加上排他锁如果多个事物对同一张表都加上共享锁的话也就都不能修改了可以进行读操作如果只有一个事物加上共享锁是可以修改的  而排他锁呢则是不能

知识大全 Oracle数据完整性和锁机制简析

Oracle数据完整性和锁机制简析  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  本课内容属于O

知识大全 Oracle数据库锁的常用类型有哪些

Oracle数据库锁的常用类型有哪些  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  此文章主要是

知识大全 Oracle无法对所有EM相关帐户解锁怎么办

Oracle无法对所有EM相关帐户解锁怎么办  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  创建

知识大全 Oracle数据库查找被锁以及解锁的解决办法

Oracle数据库查找被锁以及解锁的解决办法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  or

知识大全 oracle查询数据并同时修改状态

  有一个表中的数据需要每月更新数据量近百万考虑由台服务器分摊并分批进行更新  这就需要能够查询一批记录并同时修改这批记录的更新状态以免被正在更新的数据被其他服务器取到  加行级锁查询到记录后再遍历结

知识大全 hiernate的锁机制

学了两天的hibernate锁机制今天写个总结hibernate锁机制包括悲观锁和乐观锁悲观锁   它指的是对数据被外界修改持保守态度假定任何时刻存取数据时都可能有另一个