当前位置: 首页 > article >正文

性能优化一: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.kler.cn/a/311740.html

相关文章:

  • 【Linux】基础IO及文件描述符相关内容详细梳理
  • JavaScript——函数、事件与BOM对象
  • spring cloud 入门笔记1(RestTemplate,Consul)
  • Linux学习笔记之组管理和权限管理
  • 【Kafka 实战】如何解决Kafka Topic数量过多带来的性能问题?
  • 调整TCP参数, 优化网络性能
  • 手机实时提取SIM卡打电话的信令和声音-新的篇章(一、可行的方案探讨)
  • 【简单记录】Linux系统安装ZooKeeper
  • 【电路笔记】-运算放大器比较器
  • 在线查看 Android 系统源代码 Git repositories on android
  • YOLOv9改进策略【注意力机制篇】| MCAttention 多尺度交叉轴注意力
  • vue和thinkphp路由伪静态配置
  • 前端vue-子组件对于父组件的传值的约束
  • cuda与机器学习
  • C++ ——string的模拟实现
  • 字节跳动的微服务独家面经
  • 详细分析Pytorch中的register_buffer基本知识(附Demo)
  • 9.19工作笔记
  • fmql之驱动程序编写(首次)
  • 浏览器插件利器--allWebPluginV2.0.0.20-beta版发布
  • 安科瑞智能塑壳断路器适用于物联网配电电网中-安科瑞黄安南
  • 算法打卡:第十一章 图论part01
  • 每天五分钟深度学习框架pytorch:pytorch中已经定义好的损失函数
  • Redis的Key的过期策略是怎样实现的?
  • 【WPF】02 按钮控件圆角配置及状态切换
  • 华为昇腾智算中心-智算中心测试方案与标准