性能优化一:oracle 锁的原则

文章目录

  • 锁的原则
  • 查看具体会话阻塞过程


锁的原则

1、只有被修改时,行才会被锁定。

2、当条语句修改了一条记录,只有这条记录上被锁定,在Oracle数据库中不存在锁升
3、当某行被修改时 ,它将阻塞别人对它的修改。
4、当一个事务修改一行时.将在这个行上加上行锁(TX) , 用于阻止其它事务对相同行
5、读永远不会阻止写。
6、读不会阻塞写,但有唯一-的一 个例外,就是select …for. update。
7、写永远不会阻塞读。
8、当一行被修改后 , Oracle通过回滚段提供给数据的一致性读。

查看具体会话阻塞过程

会话session1:update 表

update itpux set name='20240912' where id='5';--session 1 更新成功 但未提交(未commit)

会话session2: update 表

update itpux set name='2024' where id='5';--session 1 更新成功 但未提交   session 2 继续更新时被阻塞  

在这里插入图片描述

当会话seesion1进行事务操作的情况下,未对相关的事务进行提交或者回退,导致session2进行事务操作的时候被阻塞需要等待session1,需要提交或者回退释放资源session2才能正常进行事务操作。

根据上述情况,看看数据库内部lock机制的加锁情况:

会话session1中查看此会话的sid:

select  distinct sid  from v$mystat  -- session 1的sid

查看TM表级锁和TX行级锁的情况 V l o c k 和 v lock和v lockvmystat两个视图中sid是保持一致的

select  *   from  V$lock t where t.type in('TX','TM')-- 锁的视图查看有那些锁记录

根据上面两个视图中查到的sid可以在dba_objects通过事务的查询到具体那个事务的阻塞情况和具体那个表

select  *   from dba_objects where t.object_id='33'

v$mystat

在这里插入图片描述

当前用户的各种统计信息sid就是session的id(也就是当前用户),STATISTIC#就是统计量的编号(用来唯一确定统计量的名称)

DBA_OBJECTS 视图
在这里插入图片描述

数据字典视图,表示用户可以访问的所有对象。它描述了存储在每个数据库中的所有用户可见对象,包括类型、表、索引、存储过程、视图和序列等
通过Oracle数据字典视图,以查找对象的拥有者创建日期等信息,监控数据库中各种对象的状态和属性。通过这个视图可以看到一个用户所有拥有的所有对象,方便dba进行检测。

$lock视图

列出当前系统持有的或正在申请的所有锁的情况
在这里插入图片描述

在这里插入图片描述

oracle中视图比较多,需要在漫长的学习和工作中应用掌握

v$locked_object视图:

v$locked_object视图列出当前系统中哪些对象正被锁定,其主要字段说明如下:
在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/427855.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

大佬,简单解释下“嵌入式软件开发”和“嵌入式硬件开发”的区别

在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「嵌入式的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!!首先,嵌入式硬…

zabbix之钉钉告警

钉钉告警设置 我们可以将同一个运維组的人员加入到同一个钉钉工作群中,当有异常出现后,Zabbix 将告警信息发送到钉钉的群里面,此时,群内所有的运维人员都能在第一时间看到这则告警详细。 Zabbix 监控系统默认没有开箱即用…

React学习day08-useReducer、useMemo、memo、useCallback、forwardRef、useInperativeHandle

15、useReducer 1)作用:用来管理相对复杂的状态数据,类似于useState 2)使用步骤(传递一般的参数)(在APP.js中): ①定义一个reducer函数,在函数中通过switc…

Linux——k8s认识

计算资源隔离 - 更方便进行高并发架构的维护和升级 - 架构管理的灵活性更高,不再以单个节点的物理资源作为基础 技术: - 硬件辅助虚拟化 - 容器技术 在企业部署方案中,很少以单节点实现虚拟化和容器技术,一般以集群状态来运…

68 - I. 二叉搜索树的最近公共祖先

comments: true difficulty: 简单 edit_url: https://github.com/doocs/leetcode/edit/main/lcof/%E9%9D%A2%E8%AF%95%E9%A2%9868%20-%20I.%20%E4%BA%8C%E5%8F%89%E6%90%9C%E7%B4%A2%E6%A0%91%E7%9A%84%E6%9C%80%E8%BF%91%E5%85%AC%E5%85%B1%E7%A5%96%E5%85%88/README.md 面试题…

MySQL高阶1873-计算特殊奖金

目录 题目 准备数据 分析数据 总结 题目 编写解决方案,计算每个雇员的奖金。如果一个雇员的 id 是 奇数 并且他的名字不是以 M 开头,那么他的奖金是他工资的 100% ,否则奖金为 0 。 返回的结果按照 employee_id 排序。 准备数据 Crea…

【Python语言初识(一)】

一、python简史 1.1、python的历史 1989年圣诞节:Guido von Rossum开始写Python语言的编译器。1991年2月:第一个Python编译器(同时也是解释器)诞生,它是用C语言实现的(后面),可以调…

Python编码系列—Python代理模式:为对象赋予超能力的魔法

🌟🌟 欢迎来到我的技术小筑,一个专为技术探索者打造的交流空间。在这里,我们不仅分享代码的智慧,还探讨技术的深度与广度。无论您是资深开发者还是技术新手,这里都有一片属于您的天空。让我们在知识的海洋中…

数据结构(Day14)

一、学习内容 结构体 概念 引入:定义整数赋值为10 int a10; 定义小数赋值为3.14 float b3.14; 定义5个整数并赋值 int arr[5] {1 , 2 , 3 , 4 ,5}; 定义一个学生并赋值学号姓名成绩 定义一个雪糕并赋值名称产地单价 问题:没有学生、雪糕 数据类型 解决&…

Python语言学习-pandas库学习

一、什么是Pandas库 Pandas是python的第三方库,他用于灵活的数据操作,数据可视化,数据清洗,数据的聚合和转换,数据的可视化 二、安装pandas库 在终端中运行 pip install pandas 导入Pandas库并重命名为pd import …

2024年9月第3周AI资讯

阅读时间:3-4min 更新时间:2024.9.16-2024.9.20 目录 OpenAI 推出 o1:一种新的“推理”人工智能模型 微软为 Excel 和 Word 添加了更快的 Copilot World Labs 利用 AI 创建 3D 世界 AI 利用文本创建开放世界视频游戏 OpenAI 推出 o1&#x…

【vue element-ui】关于删除按钮的提示框,可一键复制

实现效果: Delete: function (id) {this.$confirm(此操作将永久删除该文件, 是否继续?, 提示, {confirmButtonText: 确定,cancelButtonText: 取消,type: warning,center: true,}).then(() > {Delete(id).then(() > {this.$message({type: success,message: 删…

工业交换机如何保证数据的访问安全

在现代工业自动化环境中,工业交换机作为关键的网络设备,扮演着数据传输和信息交互的重要角色。为了确保数据的访问安全,工业交换机不仅具备高效的转发性能,还集成了多层次的安全防护机制,以抵御各种潜在的网络威胁。 首…

传输大咖44 | 云计算企业大数据迁移如何更安全高效?

在云计算时代,数据已成为企业最宝贵的资产之一。对于依赖云服务的企业和组织来说,大数据迁移是实现业务扩展和优化的关键步骤。然而,这一过程并非没有挑战。传统的文件传输方式在安全性、稳定性和速度上往往无法满足云计算企业的需求。本文将…

C++(Qt)软件调试---断点高级用法(20)

C(Qt)软件调试—断点高级用法(20) 文章目录 C(Qt)软件调试---断点高级用法(20)[toc]1、概述2、断点高级用法1.1 条件断点1.2 日志断点/记录点/消息追踪点1.3 函数断点1.4 命中次数断点1.5 异常断点1.6 等待断点/触发断点1.7 临时断…

掌握数据中心虚拟化:关键挑战与解决方案

数据中心虚拟化是使用云软件平台将物理数据中心转变为数字数据中心的过程,使企业能够远程访问信息和应用程序。它包括在数据中心内创建物理基础设施的多个虚拟版本,通过将服务器、存储和网络等资源划分为虚拟实体来实现资源的高效利用。 虚拟化环境中的关…

Tomcat CVE-2017-12615 靶场攻略

漏洞描述 当 Tomcat运⾏在Windows操作系统时,且启⽤了HTTP PUT请求⽅法(例如,将 readonly初始化参数由默认值设置为false),攻击者将有可能可通过精⼼构造的攻击请求数据包向服务器上传包含任意代 的 JSP ⽂件&#xf…

MySQL —— 索引

索引的概念 MySQL的索引是⼀种数据结构,它可以帮助数据库高效地查询、更新数据表中的数据。索引通过 ⼀定的规则排列数据表中的记录,使得对表的查询可以通过对索引的搜索来加快速度。 MySQL索引类似于书籍的目录,通过指向数据行的位置&…

Docker + Win 10 学习记录

下载Docker Release notes | Docker Docs 推荐使用4.33版本,最新的Docker版本在win10 22H2无法安装。需要升级到win11. 查看Win10版本是否与最新版的Docker兼容 运行 win R, 然后输入winver 如果你的Docker版本无法在当前的win10安装,请更…

基于云计算的虚拟电厂负荷预测

基于云计算的虚拟电厂负荷预测 随着电网规模的扩大及新能源的不断应用,并网电网的安全性和经济性备受关注。 电网调度不再是单一或局部控制,而是采用智能网络集成方式调度 。 智能电网应具有以下特点:坚强自愈,可以抵御外来干扰甚…