性能优化一:oracle 锁的原则

news2024/11/15 7:00:39

文章目录

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


锁的原则

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.coloradmin.cn/o/2140339.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

测试开发基础——测试用例的设计

三、测试用例的设计 1. 什么是测试用例 测试用例(Test Case)是为了实施测试而向被测试的系统提供的一组集合,这组集合包含:测试环境、操作步骤、测试数据、预期结果等要素。 设计测试用例原则一:测试用例中一个必需部分是对预期输出或结果进…

带你如何使用CICD持续集成与持续交付

目录 一、CICD是什么 1.1 持续集成(Continuous Integration) 1.2 持续部署(Continuous Deployment) 1.3 持续交付(Continuous Delivery) 二、git工具使用 2.1 git简介 2.2 git的工作流程 2.3 部署g…

【MRI基础】Partial volume 伪影

基本概念 partial volume 伪影是 MRI 中的一种常见伪影,当图像中的体素包含不同组织类型或结构的混合时就会出现这种伪影。这种伪影是由于成像系统的空间分辨率有限而产生的,导致具有不同信号强度的相邻结构在一个体素内混合在一起。 抑制MRI 中的parti…

图数据库的力量:深入理解与应用 Neo4j

图数据库的力量:深入理解与应用 Neo4j 文章目录 图数据库的力量:深入理解与应用 Neo4j1、什么是 Neo4j?版本说明 2、Neo4j 的部署和安装Neo4j Web 工具介绍 3、体验 Neo4j加载数据查询数据数据结构 4、Cypher 入门创建数据查询数据关系深度查…

Matlab simulink建模与仿真 第十五章(信号源库)

参考视频:simulink1.1simulink简介_哔哩哔哩_bilibili 一、信号源库中的模块概览 注:部分模块在第二章中有介绍,本章不再赘述。 二、from输入源模块 1、From Workspace模块 (1)该模块可从MATLAB工作区、模型工作区…

JVM 运行时数据区域

目录 前言 程序计数器 java虚拟机栈 本地方法栈 java堆 方法区 运行时常量池 前言 首先, java程序在被加载在内存中运行的时候, 会把他自己管理的内存划分为若干个不同的数据区域, 就比如你是一个你是一个快递员, 一堆快递过来需要你分拣, 这个时候, 你就需要根据投放的目…

数据稀缺条件下的时间序列微分:符号回归(Symbolic Regression)方法介绍与Python示例

时间序列概况在日常生活和专业研究中都很常见。简而言之,时间序列概况是一系列连续的数据点 y(0), y(1), …, y(t) ,其中时间 t 的点依赖于时间 t-1 的前一个点(或更早的时间点)。 在许多应用中,研究者致力于预测时间序列概况的未来行为。存在各种建模方法。这些模型通常基于过…

Django学习实战篇四(适合略有基础的新手小白学习)(从0开发项目)

前言: 在本章中,我们开始编写面向用户的界面,其中只涉及简单的HTML结构,不会做太多美化,目的就是把后台创建的数据展示到前台。 从技术上来讲,这一节将涉及Django 中function view和 class-based view 的用…

用Python实现时间序列模型实战——Day 22: LSTM 与 RNN 模型

一、学习内容 1. 长短期记忆网络 (LSTM) 的原理 LSTM(长短期记忆网络) 是一种专门用于处理时间序列数据的神经网络,它克服了传统 RNN 在处理长序列时出现的梯度消失问题。LSTM 通过引入 记忆单元 和 门控机制(输入门、遗忘门、输…

Ruffle 继续在开源软件中支持 Adobe Flash Player

大多数人已经无需考虑对早已寿终正寝的 Adobe Flash 的支持,但对于那些仍有一些 Adobe Flash/SWF 格式的旧资产,或想重温一些基于 Flash 的旧游戏/娱乐项目的人来说,开源 Ruffle 项目仍是 2024 年及以后处理 Flash 的主要竞争者之一。 Ruffl…

【Hot100】LeetCode—4. 寻找两个正序数组的中位数

目录 1- 思路题目识别二分 2- 实现⭐4. 寻找两个正序数组的中位数——题解思路 3- ACM 实现 原题链接:4. 寻找两个正序数组的中位数 1- 思路 题目识别 识别1 :给定两个数组 nums1 和 nums2 ,找出数组的中位数 二分 思路 将寻找中位数 —…

Python数据分析案例59——基于图神经网络的反欺诈交易检测(GCN,GAT,GIN)

以前的数据分析案例的文章可以参考:数据分析案例 案例背景 以前二维的表格数据的机器学习模型都做烂了,[线性回归,惩罚回归,K近邻,决策树,随机森林,梯度提升,支持向量机,神经网络],还有现在常用的XGBoost,lightgbm,ca…

ffmpeg实现视频的合成与分割

视频合成与分割程序使用 作者开发了一款软件,可以实现对视频的合成和分割,界面如下: 播放时,可以选择多个视频源;在选中“保存视频”情况下,会将多个视频源合成一个视频。如果只取一个视频源中一段视频…

keil5进行stm32编程时常遇到的问题和ST-LINK在线仿真的连接问题

本文记录原因 最近一直在尝试usb的自定义键盘、无刷电机和pcb的一些东西,很久没使用stm32编写程序了。在浏览购物网站的时候发现很多便宜的小系统板。 使用小的系统板原因 1,在网上看到板子很便宜,以前很少看见,但现在网上对这…

大数据新视界 --大数据大厂之数据科学项目实战:从问题定义到结果呈现的完整流程

💖💖💖亲爱的朋友们,热烈欢迎你们来到 青云交的博客!能与你们在此邂逅,我满心欢喜,深感无比荣幸。在这个瞬息万变的时代,我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

uniapp 知识总结

1. uniapp 知识总结 uni-app是一个使用 Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、Harmony、Web(响应式)以及各种小程序(微信/支付宝/百度/头条/飞书/QQ/快手/钉钉/淘宝)、…

【webpack4系列】设计可维护的webpack4.x+vue构建配置(终极篇)

文章目录 构建配置包设计通过多个配置文件管理不同环境的 webpack 配置抽离成一个 npm 包统一管理(省略)通过 webpack-merge 组合配置 功能模块设计目录结构设计构建配置插件安装webpack、webpack-cli关联HTML插件html-webpack-plugin解析ES6解析vue、JS…

笔记本安装Linux系统向日葵远程控制

1、制作启动U盘 Ubuntu: Create a bootable USB stick with Rufus on Windows 2、安装 1、重启笔记本,出现logo后,按 f2(注:联想拯救者。其他型号参考官方文档)。按左右方向键切换到 Boot。选择 Boot Mo…

【软件测试】--xswitch将请求代理到测试桩

背景 在做软件测试的过程中,经常会遇见需要后端返回特定的响应数据,这个时候就需要用到测试桩,进行mock测试。 测试工程师在本地模拟后端返回数据时,需要将前端请求数据代理到本地,本文介绍xswitch插件代理请求到flas…

Float类型的有效位数有几位

大家好,今天我们来聊一聊C语言中的Float类型。 正如标题所说,你知道Float类型的有效位数有几位吗? 或者你知道为什么Float类型可以表示数字16777218但是却无法表示16777217吗? 如果你不是很确定那我们就一起来看看吧&#xff0…