Oracle RDBMS锁机制

保姆级教程:用CellOracle 0.10.13从单细胞数据构建基因调控网络(附完整代码) 本文提供了一份详细的CellOracle 0.10.13使用指南,帮助用户从单细胞数据构建基因调控网络。通过Python接口,即使是生物信息学新手也能快速掌握数据准备、KNN插补、GRN计算及可视化等关键步骤。文章包含完整代码和实用技巧,助力单细胞转录组数据分析。 阅读详情
Oracle RDBMS的封锁类型可分为如下三类: 

1. 内部级封锁 
内部级封锁是用于保护ORACLE内部结构,由系统内部实现,用户不能访问,因此我们不必对此做过多的了解。 

2. DDL级封锁(字典/语法分析封锁) 
DDL级封锁也是由ORACLE RDBMS来控制,它用于保护数据字典和数据定义改变时的一致性和完整性。它是系统在对SQL定义语句作语法分析时自动地加锁,无需用户干予。字典/语法分析封锁共分三类: 

a) 字典操作锁: 
用于对字典操作时,锁住数据字典,此封锁是独占的,从而保护任何一个时刻仅能对一个字典操作。 

b) 字典定义锁: 
用于防止在进行字典操作时又进行语法分析,这样可以避免在查询字典的同时改动某个表的结构。 

c) 表定义锁: 
用于一个SQL语句正当访问某个表时,防止字典中与该表有关的项目被修改。 

3. DML级封锁 
DML级封锁用于控制并发事务中的数据操纵,保证数据的一致性和完整性,其封锁对象可以是表或行。 
对用户的数据操纵,Oracle可以自动为操纵的数据进行封锁,但如果有操纵授权,则为满足并发操纵的需要另外实施封锁。DML封锁可由一个用户进程以显式的方式加锁,也可通过某些SQL语句隐含方式实现。 

DML锁有如下三种封锁方式: 

(1)、共享封锁方式(SHARE) 

(2)、独占封锁方式(EXCLUSIVE) 

(3)、共享更新封锁(SHARE UPDATE) (可为行级锁)
其中SHARE,EXCLUSIVE用于表封锁,SHARE UPDATE用于行封锁。 


a) 共享方式的表封锁 
共享方式的表封锁是对表中的所有数据进行封锁, 

该锁用于保护查询数据的一致性,防止其它用户对已封锁的表进行更更新。其它用户只能对该表再施加共享方式的锁,而不能再对该表施加独占方式的封锁,共享更新锁可以再施加,但不允许持有共享更新封锁的进程做更新。共享该表的所有用户只能查询表中的数据,但不能更新。共享方式的表封锁只能由用户用SQL语句来设置,基语句格式如下:   

LOCK TABLE <表名>[,<表名>]...  IN SHARE MODE [NOWAIT]   

执行该语句,对一个或多个表施加共享方式的表封锁。当指定了选择项NOWAIT,若该封锁暂时不能施加成功,则返回并由用户决定是进行等待,还是先去执行别的语句。 

持有共享锁的事务,在出现如下之一的条件时,便释放其共享锁:  

A、执行COMMIT或ROLLBACK语句。 

B、退出数据库(LOG OFF)。 

C、程序停止运行。 
共享方式表封锁常用于一致性查询过程,即在查询数据期间表中的数据不发生改变。 

b) 独占方式表封锁 
独占方式表封锁是用于封锁表中的所有数据,拥有该独占方式表封锁的用户,即可以查询该表,又可以更新该表,其它的用户不能再对该表施加任何封锁(包括共享、独占或共享更新封锁)。其它用户虽然不能更新该表,但可以查询该表。 

独占方式的表封锁可通过如下的SQL语句来显示地获得: 

LOCK TABLE <表名>[,<表名>].... IN EXCLUSIVE MODE [NOWAIT] 

独占方式的表封锁也可以在用户执行DML语句INSERT、UPDATE、DELETE时隐含获得。 
拥有独占方式表封锁的事务,在出现如下条件之一时,便释放该封锁: 
(1)、执行COMMIT或ROLLBACK语句。 
(2)、退出数据库(LOG OFF) 
(3)、程序停止运行。 
独占方式封锁通常用于更新数据,当某个更新事务涉及多个表时,可减少发生死锁。 

c) 共享更新封锁方式 
共享更新封锁是对一个表的一行或多行进行封锁,因而也称作行级封锁。表级封锁虽然保证了数据的一致性,但却减弱了操作数据的并行性。行级封锁确保在用户取得被更新的行到该行进行更新这段时间内不被其它用户所修改。因而行级锁即可保证数据的一致性又能提高数据操作的迸发性。 
可通过如下的两种方式来获得行级封锁: 

(1)、如下的SQL封锁语句,以显示的方式获得: 

LOCK TABLE <表名>[,<表名>].... IN SHARE UPDATE MODE [NOWAIT] 

(2)、用如下的SELECT ... FOR UPDATE语句获得: (行级锁)

SELECT <列名>[,<列名>]...FROM <表名> WHERE <条件> FOR UPDATE OF <列名>[,<列名>].....[NOWAIT] 

一旦用户对某个行施加了行级封锁,则该用户可以查询也可以更新被封锁的数据行,其它用户只能查询但不能更新被封锁的数据行.如果其它用户想更新该表中的数据行,则也必须对该表施加行级锁.即使多个用户对一个表均使用了共享更新,但也不允许两个事务同时对一个表进行更新,真正对表进行更新时,是以独占方式封锁表,一直到提交或复原该事务为止。行锁永远是独占方式锁。 
当出现如下之一的条件,便释放共享更新锁: 
(1)、执行提交(COMMIT)语句; 
(2)、退出数据库(LOG OFF) 
(3)、程序停止运行。 
执行ROLLBACK操作不能释放行琐。 
从上面讲述可见,ORACLE RDBMS的加锁机制,解决了并发事务的相容与互斥问题。相容保证事务的并发性,互斥确保数据的一致性。  但当用户1在某行上进行更新操作时,用户2只有等待用户1提交事务后,才能更新自己所封锁的行。 


封锁虽然能够有效的解决并发操作,但是任何资源的独占都会有死锁的危险。例如:有两个事务T1,T2,T1对数据A施加独占封锁,T2对数据B施加了独占封锁。再假设T1要对数据B加锁,由于B已被T2独占封锁,因此T1置于等待状态,等待B被释放;现在若T2也要对A进行封锁,由于A已被T1独占封锁,因此T2也被置于等待状态。这样就形成了两个事务相互等待的状态,而且永远不能结束,此种情况称为死锁。 

   在Oracle系统中能自动发现死锁,并选择代价最小的,即完成工作量最少的事务予以撤消,释放该事务所拥有的全部锁,记其它的事务继续工作下去。 

   从系统性能上考虑,应该尽可能减少资源竞争,增大吞吐量,因此用户在给并发操作加锁时,应注意以下几点: 

   1、对于UPDATE和DELETE操作,应只封锁要做改动的行,在完成修改后立即提交。 

   2、当多个事务正利用共享更新的方式进行更新,则不要使用共享封锁,而应采用共享更新封锁,这样其它用户就能使用行级锁,以增加并行性。 

   3、尽可能将对一个表的操作的并发事务施加共享更新锁,从而可提高并行性。 

   4、在应用负荷较高的期间,不宜对基础数据结构(表、索引、簇和视图)进行修改
利用wolcmd.exe批处理执行远程唤醒 代码如下: @echo off cls :check if exist wolcmd.exe goto targetmac echo 缺少wolcmd.exe echo. goto end :targetmac cls echo -------------------------------------------------------- echo 目标主机PC-01地址:40235678A... 阅读详情

相关推荐

STM32驱动AS5600磁性旋转位置传感器模块

文章目录简介引脚定义I2C接口写数据读数据从指定的地址开始读数据驱动程序cubeMX配置驱动程序`bsp_as5600.h``bsp_as5600.c`测试程序参考资料 简介 AS5600 是一款易于编程的磁性旋转位置传感器,具有高分辨率 12 位模拟或 PWM 输出。 这种非接触式系统测量径向磁化轴上磁铁的绝对角度。 该 AS5600 专为非接触式电位计应用而设计,其坚固的设计消除了任何同质外部杂散磁场的影响。 引脚定义 I2C接口 7位设备地址为0x36(二进制表示为0110110) 支持标准模式和

ApexYuan 1万+

数据库编程和设计—Oracle的使用

一、数据库相关概念 1、什么是数据库 所谓的数据库其实就是数据的集合,用户可以对集合中的数据进行新增、查询、更新、删除的操作。数据库是以一定方式存储在一起、能与多个用户共享、具有尽可能小的冗余度、与应用程序彼此独立的数据集合。 2、数据库类型 2.1关系型 Oracle Mysql PostgreSQL DB2 Microsoft SQL Server MicrosoftAccess 2.2 非关系型 Redis Mongodb Big Table 3 关系型数据库与非关系型数据之间的区别 3.1 关系型数

LiLi的博客 914

AD从原理图到PCB超详细教程

我在学习AD的时候,看了网上很多教程,但是东西很杂,有很多条理不清而且废话很多,所以相信大家学习的时候也是遇到一样的困难。我就特地写一篇帖子,整理了一下AD从画原理图开始一直到画完PCB文件的所有步骤,一方面是供大家参考学习,另一方面可以方便我自己学习记忆更加深刻。我用的版本是AD16中文版,大家用新的版本AD20或者AD22应该操作都是差不多的。

人生寂寞如雪 18万+

Oracle数据库基本操作

Oracle 中的数据类型 Oracle 中的数据类型 字符类型 字符串数据类型还可以依据存储空间分为固定长度类型(CHAR) 和可变长度类型 (VARCHAR2/NVARCHAR2)两种。 CHAR 类型 CHAR 类型,定长字符串,会用空格填充来达到其最大长度。非 NULL 的 CHAR(12) 总是包含 12 字节信息。CHAR 字段最多可以存储 2,000 字节的信息。如果创建表时,不指 ...

weixin_41782409的博客 473

从理论到实践:笛卡尔空间阻抗控制的实现挑战与变体解析

本文深入探讨了笛卡尔空间阻抗控制的核心原理、工程实现中的五大挑战及经典变体实战解析。通过详细的数学建模和实际案例分析,揭示了阻抗控制在工业机器人、医疗设备等领域的应用价值,特别是在力感知精度、动力学模型校准和实时计算等方面的关键技术突破。

weixin_30952535的博客 448

Python声音识别实战:从音频处理到智能分类

本文详细介绍了使用Python进行声音识别的完整实战流程。从音频预处理、特征提取(如MFCC)到构建分类模型(SVM、CNN),并最终实现一个实时环境音分类器。文章以Python为核心工具,结合librosa等库,为开发者提供了从理论到实践的清晰路径,适用于智能家居、工业监测等多种应用场景。

weixin_29064009的博客 324

oracle数据字典详解,内部RDBMS(X$)表、数据字典表、动态性能(v$)视图、数据字典视图

我们所说的数据字典由四部分组成:(1)内部RDBMS(X$)表(2)数据字典表(3)动态性能(v$)视图(4)数据字典视图   一.内部RDBMS(V$)表 X$表是oracle数据库的核心部分,用于跟中数据库内部信息,维护数据库的正常运行。X$是加密命名的,而且oracle官方文档不做说明;最为人所熟知的是X$BH、X$KSMSP等: X$表是oracle数据库的运行基础,在数据库启动时...

Mr.pan felix的专栏 2736

多模态大模型在AI人工智能领域的创新实践探索

随着人工智能技术的飞速发展,单一模态的数据处理已经难以满足复杂现实场景的需求。多模态大模型通过融合多种模态的数据,如文本、图像、音频等,能够更全面、深入地理解和处理信息,为人工智能的发展带来了新的机遇和挑战。本文的目的在于深入探讨多模态大模型在AI人工智能领域的创新实践,包括其核心概念、算法原理、实际应用等方面,旨在为相关领域的研究人员和从业者提供全面的技术参考和实践指导。本文的范围涵盖了多模态大模型的基本原理、算法实现、数学模型、项目实战以及实际应用场景等多个方面。

大模型应用工坊 1316

Oracle RDBMS Kernel Executable内存占用过高

Oracle RDBMS Kernel Executable内存占用过高

java coder https://github.com/pmsyn/ https://gitee.com/pmsyn 8059

4、高级认证解决方案:Active Directory、LDAP、RADIUS和TACACS+深度解析

本文深入解析了多种高级认证解决方案,包括Active Directory、标准LDAP、RADIUS和TACACS+,涵盖其技术优势、配置步骤及适用场景。同时介绍了如何实现通用用户管理,包括使用第三方认证解决方案和ADSI自助用户管理。通过实际案例部署,展示了如何高效、安全地管理大规模用户认证与权限控制,为企业安全架构提供参考。

o4p5q6r7s的博客 304

朱长江《偏微分方程简明教程》答案第一章部分

偏微分方程简明教程第一章习题1.1 第一章 习题1.1 1、指出下列方程的阶,并判断它是线性的还是非线性的。如果是线性的,说明它还是其次的: (1)ut−(uxx+uyy)+1=0;(2)ut−uxx+xu=0;(3)ut−uxxt+uux=0;(4)ux2+uuy=0;(5)utt−uxx+t2+x2=0;(6)ux+eyuy=0;(7)ut+uxxxx+1+u=0;(8)ux(1+ux2)−12+uy(1+uy2)−12=0;(9)∂4u∂x4+2∂4u∂x2∂y2+∂4u∂y4=0;(10)∂3u∂x

ymengm的博客 6760

Oracle数据库

Oracle Database,又名Oracle RDBMS,简称Oracle。直至2022年仍是当今使用最广泛最流行的关系型数据库,由甲骨文公司开发、运营与维护。在数据库领域中一直处于领先地位,系统可移植性好、使用方便、功能与性能强大、效率高,适用于大、中、小软件开发。放眼当下因高效率(适应高吞吐量)、可靠性好仍是开发商业软件最好的选择(就是有点贵)。

laizhenghua的博客 1万+

【unity小技巧】常用的方法属性和技巧汇总(长期更新,2025/07/02更新)

Unity开发技巧摘要 本文汇总了Unity开发中的实用技巧,包括移动控制、力应用、物体翻转、单例模式实现等。移动方面介绍了MoveTowards、MovePosition、Translate等方法的区别与应用场景;力应用部分详解了AddForce系列方法的参数和使用方式;物体翻转对比了三种实现方案;单例模式提供了标准实现和泛型优化版本;还收录了绝对值计算、鼠标检测、旋转控制、数值取整等实用代码片段。这些经过验证的技巧能有效提升开发效率,文章将持续更新补充新的实用内容。

向宇的博客,专注php/web全栈 unity游戏开发,欢迎大家评论纠错 3348

Oracle Lock 锁

Oracle RDBMS的封锁类型可分为如下三类

基于Oracle11G 3132

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

详解ORACLE锁分类(转)

看了网上一些资料,发现对Oracle中的锁有多种分类方法,从各个不同的角度对锁进行分析。预备知识:DDL(DATABASE DEFINITION LANGUAGE):数据库定义语言,如create table、drop tabl...

144

ORACLE的锁机制

ORACLE的锁机制 设立封锁机制主要是为了对并发操作进行控制,对干扰进行封锁,保证数据的一致性和准确性。Oracle数据库封锁方式有三种:共享封锁,独占封锁,共享更新封锁 Oracle RDBMS的封锁类型可分为如下三类: 1、内部级封锁 内部级封锁

602

oracle rdbms包括,Oracle RDBMS的封锁类型有哪些?

设立封锁机制主要是为了对并发操作进行控制,对干扰进行封锁,保证数据的一致性和准确性。Oracle数据库封锁方式有三种:共享封锁,独占封锁,共享更新封锁。Oracle RDBMS的封锁类型可分为如下三类:1、内部级封锁内部级封锁是用于保护ORACLE内部结构,由系统内部实现,用户不能访问,因此我们不必对此做过多的了解。2、DDL级封锁(字典/语法分析封锁)DDL级封锁也是由ORACLE RDBMS来...

weixin_39612110的博客 303

Oracle 知识点总结

Oracle 知识点总结 1、orcale不区分大小写,标志符(表名,列名,别名等)是区分大小写的;标志符没有加双引号,默认自动转换为大写执行2、orcale中双引号作用:转义非法标志符为合法,强制标志符原始大小写执行3、oracle中日期类型没有常量这一说,默认日...

weixin_30640291的博客 480

说说ORACLE的封锁机制

设立封锁机制主要是为了对并发操作进行控制,对干扰进行封锁,保证数据的一致性和准确性。Oracle数据库封锁方式有三种:共享封锁,独占封锁,共享更新封锁 [b:8f4f63b9bb]封锁类型[/b:8f4f63b9bb] Oracle RDBMS的封锁类型可分为如下三类: 1、内部级封锁 内部级封锁是用于保护ORACLE内部结构,由系统内部实现,用户不能访问,因此我们不必对此做过多的了解。

Log4Me 1331

mysql基础

mysql基础

qq_19820589的博客 78

ORACLE锁机制详细分析

看了网上一些资料,发现对Oracle中的锁有多种分类方法,从各个不同的角度对锁进行分析。 预备知识: DDL(DATABASE DEFINITION LANGUAGE):数据库定义语言,如create table、drop table..... DML(DATABASE MODIFICATION LANGUAGE):数据库操纵语言,如insert、delete、update...... O...

PolyAngle2011的博客 345

对比Oracle和Mysql在锁机制上的类似和差异点

在进一步分析Hadoop相关的分布式事务和锁的机制前,有必要先整理和对比分析一下RDBMS领域最红的两大领军人物 Oracle VS Mysql 1:事务隔离级别 oracle默认为Read committed Mysql的InnoDB默认为Repeatable Read. 2:锁类别 oracle 内部级封锁(对外不公布,无法了解) DDL锁(对数据字典、词法分析封锁) 细分:

huareal的专栏 1175

ORACLE锁机制

ORACLE锁机制主要是为了对并发操作进行控制,来保证数据的一致性和准确性。下面我们就来学习ORACLE锁机制。 AD: ORACLE锁机制主要是为了对并发操作进行控制,来保证数据的一致性和准确性。下面我们就来学习ORACLE锁机制。 Oracle RDBMS的封锁类型可分为如下三类: 1、内部级封锁  内部级封锁是用于保护ORACLE内部结构,由系统内部实现,用户不

260

oracle select机制_ORACLE的锁机制 - blue - 博客园

设立封锁机制主要是为了对并发操作进行控制,对干扰进行封锁,保证数据的一致性和准确性。Oracle数据库封锁方式有三种:共享封锁,独占封锁,共享更新封锁Oracle RDBMS的封锁类型可分为如下三类:1、内部级封锁内部级封锁是用于保护ORACLE内部结构,由系统内部实现,用户不能访问,因此我们不必对此做过多的了解。2、DDL级封锁(字典/语法分析封锁)DDL级封锁也是由ORACLE RDBMS来控...

weixin_39811166的博客 274
上一篇: 跳转指令
adderllyer
博客等级 码龄20年 13粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值