oracle-事务一系列理解

一个事务开始后,会被分配一个唯一的id号,xid,xid不仅是一个编号也是一个地址。

事务表

存在undo表空间的某一个段的段头块,最多存放47个事务,事务开始的时候,先将信息写入这个表,所以一个undo段最多纪录47个事务。

oracle尽量一个事务用一个回滚段,如果不够用,就复用。

可将段头dump出来(正常数据库也可以dump),文件名是以会话的编号组成


事务槽:

1一个事务开始的时候首先将xid写入空闲的undo段的段头的事务表中,同事写入uba地址

2 在所要修改的数据块的事务槽中写入xid事务信息, 一个数据块的事务槽最多放256个,事务槽中也有uba的地址。

3 回滚快(uba):将要修改的数据写入回滚快中,回滚块用完了用下一个使用链将其链起来,同时事务标中指向最新的uba。

所以xid回溯的首先是哪个回滚段的段头块,以及47行的哪一行,第几次覆盖(以免xid号重复)

dump出数据块流程

如果数据段段头没有事务槽,所有事物都会去回滚段段头去查询,造成拥挤。

事务提交方式

快速提交

箭头查询是通过xid,

相关推荐
Hello.Reader2 分钟前
Flink SQL Window Join 把时间维度“写进” JOIN 条件里
数据库·sql·flink
爬山算法7 分钟前
Redis(172)如何使用Redis实现分布式队?
数据库·redis·分布式
古城小栈12 分钟前
QPS统计好,睡觉不会被打扰
运维·数据库·压力测试
shayudiandian13 分钟前
一键部署MySQL黑科技
数据库·科技·mysql
Misnice17 分钟前
使用 SQLAlchemy 连接数据库
数据库·python·mysql·fastapi
Shingmc323 分钟前
MySQL数据类型
数据库·mysql
秦jh_26 分钟前
【Qt】信号与槽
服务器·开发语言·数据库·qt
微信-since8119226 分钟前
[ruby on rails] pg 数据库性能问题排查与解决完整记录
数据库·ruby on rails·oracle
hanyi_qwe29 分钟前
关系型数据库 vs 非关系型数据库
数据库·nosql
西***634733 分钟前
指挥中心 “协同密码”:KVM 坐席协作系统如何破解数据壁垒与安全难题?
数据库