您当前位置:优侠库 > 资讯攻略 >
来源:未知
2021-01-15 05:37:20 浏览: 分类:资讯攻略

Oracle锁简单介绍

Oracle数据库是当今应用最广泛的数据库领域,也是一个庞大的系统。要完全理解它,玩好它,不仅需要一定的理论知识,还需要开发经验和工程经验。我是甲骨文的粉丝。下面是我关于甲骨文锁的一些经验,希望分享给大家。

初步知识:

DDL(数据库定义语言):数据库定义语言,如创建表和删除表.....

DML(数据库修改语言):数据库修改语言,如插入、删除和更新。......

参考:Oracle8管理员指南,8.0版

Oracle8 Tuning,8.0版Oracle锁分为以下几类:

1.根据用户和喜羊羊与灰太狼的多样性引入系统,可分为自动锁和显示锁。

自动锁:默认情况下,当执行数据库操作时,系统会自动获取该数据库操作所需的所有锁。

显示锁:在某些情况下,需要用户显示的数据来锁定数据库操作,以使数据库操作更好地执行。用户为数据库对象设置显示锁定。

2.根据锁的级别,可以分为共享锁和独占锁。

共享锁:共享锁恶作剧之吻多样性介绍1-2组事务共享访问特定数据库资源& mdash& mdash另一个事务也可以访问该资源或获取相同的共享锁。共享锁为事务提供了高并发性,但是糟糕的事务设计很容易导致死锁或数据更新丢失。

独占锁(Exclusive lock):事务设置独占锁后,这个事务单独获取这个资源,在这个事务提交之前,另一个事务不能获取同一个对象的共享锁或独占锁。

3.按操作可分为DML锁和DDL锁。

DML锁可以分为行锁、表锁和死锁。

-行锁:当事务执行数据库插入、更新或删除操作时,事务自动获取操作表中操作行的排他锁。

-表级锁:当一个事务获得一个行锁时,这个事务会自动获得该行的表锁(共享锁),以防止其他事务做出会影响记录行更新的DDL语句。事务还可以获取正在进行的共享锁或排他锁。只有当事务显示由锁表语句定义的排他锁时,事务才能获得表上的排他锁,或者由锁表显示定义表级共享锁(锁表的具体用法请参考相关文档)。

-Deadlock:当两个事务需要一组冲突的锁,但事务无法继续时,就会发生死锁。

例如,事务1在表A的记录#3中有一行排他锁,并等待表A的记录#4中的排他锁的释放,而事务2在表A的记录#4中有一行排他锁,并等待表A的记录#3中的排他锁的释放。死锁通常是由糟糕的事务设计引起的。

死锁只能在SQL: alter system kill session " sid,serial # & quot;或者使用相关操作系统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在向这个内存区域写入信息之前,必须首先获得这个内存区域的闩锁。

关键词:甲骨文

优侠库网站每天提供最新最热门的安卓手机软件、游戏下载、分享热门手游资讯攻略教程、手机软件教程步骤,专注安卓手机游戏软件下载。

本文链接:http://www.123down.cn/gonglue/227348.html

攻略资讯
安卓软件
安卓游戏