MSSM管理的Oracle段头块

自动段空间管理(ASSM)和手动段空间管理(MSSM)中FREELIST作用浅析 段空间管理: 手动段空间管理manual segment space management (MSSM). MSSM是Oracle的遗留实现,原先需要对控制空间分配和提供高并发性的参数数不胜数,并且需要对这些参数进行细致地调整,而大家并不希望继续这么做。当使用MSSM表空间时,oracle会使用自由列表(FREELIST)来维护他们的HWM之下的块。 自动段空间管理automatic seg 阅读详情

访问www.tomcoding.com网站,学习Oracle内部数据结构,详细文档说明,下载Oracle的exp/imp,DUL,logminer,ASM工具的源代码,学习高技术含量的内容。

MSSM是Manual Segment Space Management的首字母缩写,是Oracle最初实现的一种段空间管理技术。MSSM在对象的段头设置一个空闲列表(Freelist)来管理空闲块。在创建对象时有两个跟存储相关的参数叫做PCTFREE和PCTUSED,是一个百分比的值,默认PCTFREE为20,PCTUSED为40,表示在一个块的空闲空间减小到20%时就不再插入数据,这个块也从空闲列表中删除,当一个块的空闲空间随着删除数据等操作增大到40%时,这个块会重新添加到空闲列表中,可以插入新的数据。当许多用户对同一个对象频繁的进行插入、删除或更新操作时,就会同时对空闲列表访问,造成竞争,影响性能,这也是后来引入自动段管理的原因。

手工管理的段头块分为下面的几个部分,我们一一来介绍。

1. 块头(Block Header)

Oracle数据文件中的每个块都有一个统一结构的块头,存储了块的地址(RDBA),块的系统改变号(SCN),块的类型,块的校验和等内容。我们看一下它的dump信息。

buffer tsn: 0 rdba: 0x004000f0 (1/240)  <-buffer header
scn: 0x0000.0040c7e7 seq: 0x01 flg: 0x04 tail: 0xc7e71001
frmt: 0x02 chkval: 0x25f8 type: 0x10=DATA SEGMENT HEADER - UNLIMITED
 

从上面看到这个块的类型为0x10=DATA SEGMENT HEADER - UNLIMITED,表示手工管理的段头块。

2. Extent控制头(Extent Control Header)

这个结构是整个段内extent的控制结构,我们先来看一下它的dump信息,然后解释一下主要字段的含义。控制头结构的dump信息如下。

  Extent Control Header
  -----------------------------------------------------------------
  Extent Header:: spare1: 0      spare2: 0      #extents: 23     #blocks: 1023
                  last map  0x00000000  #maps: 0      offset: 4128
      Highwater::  0x00414d8f  ext#: 22     blk#: 15     ext size: 128
  #blocks in seg. hdr's freelists: 6
  #blocks below: 910
  mapblk  0x00000000  offset: 22
                   Unlocked
 

其中#extents字段表示段中包含的extent的总个数。#blocks字段表示段中包含的块的总个数。last map字段表示最后一个extent map块的地址,如果是0,表示没有下一个extent map块。#maps字段表示extent map块的个数,不包含段头块中的extent map。offset字段表示段头块中extent map结束的偏移量。Highwater字段表示高水位块地址,这个地址是段内最后一个包含数据的块地址,如果进行全部扫描,到这个块段内的数据就结束了。ext#和blk#字段表示高水位块所在的extent号和块号。ext size字段表示高水位块所在的extent包含了多少个数据块。

3. Extent Map Header

下面的结构叫做extent map header,包含了这个extent map的控制信息,我们先看一下dump信息。

     Map Header:: next  0x00000000  #extents: 23   obj#: 18     flag: 0x40000000

这个结构比较小,只包含了16个字节,我们来看看它的字段结构。next字段表示下一个extent map块的地址,如果为0,表示没有下一个extent map。#extents字段表示当前的extent map包含了多少个extent。obj#字段表示这个对象在段内的object id,就是对象的dataobj#。

4. Extent Table

接下来就是Extent Map的结构数组了,这个结构叫做Extent Table。每个结构元素占用8字节,包含两个字段,分别是rdba和nblk,表示一个extent第一个块的地址和extent包含的块个数,一个extent中包含的块是连续的,所以就能确定一个extent内的所有块地址。这个数组每个元素都定义了一个extent,记录了从哪个块开始和块的个数,数组的长度就是Extent Map Header中extent的个数。

5. 其他结构

Extent map后面还有一些控制Free List的结构,主要用于分配和回收段内的空闲块。

【电路设计】带阻滤波器实战:从理论到Twin-T陷波电路实现 本文详细介绍了带阻滤波器的原理与Twin-T陷波电路的实战应用,从基础概念到工程实现全面解析。通过具体案例展示如何设计高Q值滤波器,解决电源噪声等实际问题,并分享PCB布局和元件选型的实用技巧,助力工程师提升电路设计能力。 阅读详情

相关推荐

Oracle-如何修复undo坏快

undo出现坏快,导致数据库宕机,无法启动

qqqyyy0422的博客 570

空间管理的进化革命:深度解析Oracle ASSM与MSSM自动与手动段空间管理的完整对比

【MSSM是单窗口排队,ASSM是自助查询机】银行柜台排队。所有客户(会话)排在一个队伍里,每次只能一个人办理业务。虽然有多个柜台(多个Freelist),但每个柜台的队伍仍然排着。高峰期(高并发INSERT)时排队时间远大于办理时间。自助查询机。大厅里有多个自助查询机(位图块),客户(会话)直接走过去查看哪个柜台有空(位图标记),然后直接过去办理。不需要排队,不需要叫号。排队模式的吞吐量受限于柜台数量,自助模式的吞吐量受限于大厅空间(CPU和I/O)。

✨ 欢迎来到【Seal ^_^ 的优快云博客】!✨ 949

别再乱改grub.cfg了!手把手教你用GRUB2自定义多系统启动菜单(含UEFI/BIOS双模式配置)

本文详细介绍了如何安全、高效地使用GRUB2自定义多系统启动菜单,涵盖UEFI/BIOS双模式配置。通过避免直接编辑grub.cfg文件,采用正确的配置方法和命令,帮助用户打造稳定且美观的启动环境,特别适合Linux多系统用户和开发者。

weixin_42553471的博客 590

Oracle数据库段中块的使用,ASSM与L3、L2、L1块介绍

Oracle数据库段中块的使用,ASSM与L3、L2、L1块介绍

chenoracle的博客 918

USB 基础学习:USB 电气信号介绍

USB电气信号技术解析 USB通信的核心是差分信号传输技术,通过D+和D-两根线传输相位相反的电压信号实现数据通信。USB信号系统包含三类关键信号:差分数据信号(抗干扰性强)、单端状态信号(用于设备识别)和电源信号(提供5V供电)。USB2.0采用400mV电压摆幅和NRZI编码,支持低速(1.5Mbps)至高速(480Mbps)传输;USB3.0则新增专用差分对,数据速率可达20Gbps。物理层通过上拉/下拉电阻检测设备连接,高速模式需特殊握手协议。抗干扰设计的关键在于保持差分线等长、阻抗匹配和使用共模扼

浩瀚之水的专栏 1782

如何用libwebsocket库在stm32F407上实现websocket客户端?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 1132

Oracle 体系结构(20)—— Oracle 的段(segment)管理

Oracle 体系结构(20)—— Oracle 的段(segment)管理 在 Oracle 内部,对象空间是以段(Segment)的形式存在和管理的,当建立数据对象(表、索引、簇等)时,Oracle 会自动给这些数据对象分配相应的存储空间,以存放它们的数据信息,这些为数据对象所分配的存储空间被称为段。 一个段只能存放在一个表空间中,但是可分布在属于这个表空间中的多个数据文件中。段由多个区组成,用于保存特定的数据库对象,每种数据对象都具有相应的段。段可分为以下几种类型: (1)数据段:也称为表段,当创建一

睿思达DBA 5360

YOLO26 vs YOLOv12 vs YOLOv10:工业场景性能实测,速度/精度/部署难度全对比(附完整测试代码)

YOLO26:工业场景全能型选手,无NMS+无DFL设计让部署和推理都省心,小目标精度优势明显,CPU推理速度提升43%,适合大多数生产线场景YOLOv12:中大型目标检测专家,Area Attention在复杂背景下表现出色,适合汽车、家电等大型零部件检测YOLOv10:速度狂魔,GPU上性能领先,轻量化版本适合边缘部署,但小目标精度略逊,适合对实时性要求极高的分拣线场景。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 623

oracle assm(自动段管理)与mssm(手动段管理)的区别

9i引入了assm技术,freelist被位图取代。在assm管理下,insert通过扫描位图来查找可用的block,即使block可用空间低于PCTFREE,也不会从位图中剔除(mssm中,块会被剔除freelist),所以PCTUSED不再需要。而PCTFREE还是需要的,需要它指示需要保留多少空间来给后续update增长使用,freelist和freelist group也无效了。ASSM的一个大优势是位图数组能减轻缓冲区等待(buffer busy wait)的负担。

汪灵骅的博客 2841

DO-297标准详解:IMA系统开发与认证指南

DO-297的前言部分为读者提供了本指南的概述,说明了该标准的编写背景、主要目标、目标受众以及该文件在开发和认证集成模块化航空电子(IMA,Integrated Modular Avionics)系统中的作用。作为现代航空电子架构的重要组成部分,IMA系统大幅度简化了航空电子系统的硬件配置,增加了灵活性并降低了成本。因此,DO-297成为确保IMA系统开发、集成和认证符合适航标准的核心文件。在现代航空领域,系统复杂性逐渐增加,传统上各子系统独立运行的方式已经不适应多任务、多功能的需求。

qq_41854911的博客 1583

微信终于支持“多设备同时在线”?我用 NAS + Docker 搭了一个云端微信系统,多端共享24小时在线

通过Docker 容器,将微信运行在云端并通过浏览器访问,实现多设备共享同一微信会话 📱。本文详细介绍完整部署流程、docker-compose 配置及资源控制方案,让微信变成“可访问的云桌面应用” ✨

XiaoqiangClub的博客 865

oracle mssm,探秘Oracle数据库底层存储 第4章 MSSM(手动段空间管理)

探秘Oracle数据库底层存储 第4章 MSSM(手动段空间管理)上一章介绍的LMT(本地管理表空间),通过在数据文件头的位图,管理的是指区(EXTENT)信息。本章将要介绍的MSSM(Manual Segment Space Management),管理的是数据块(BLOCK)信息MSSM(Manual Segment Space Management)MSSM段空间管理,使用SEGMENT H...

weixin_30945845的博客 880

以 Cloud 为核心的设备 mTLS 证书体系:从产品需求到 OP-TEE 安全落地

本文探讨了以云端为核心的物联网设备mTLS证书体系构建方案。文章从产品需求出发,分析了云端必须采用mTLS+证书体系管理设备身份的原因,指出静态Token方案的三大缺陷:身份不可控、运营不可控和审计不可控。重点阐述了mTLS在产品中的核心功能是加密传输和双向认证,并详细列出了云端PKI、设备注册中心等必备组件。在设备侧,强调必须通过OP-TEE技术保护私钥安全,提出了一个包含密钥生成、CSR导出等功能的TA设计方案。最后,文章给出了云端端到端流程示例,说明如何将证书生命周期管理转化为可运营的产品能力,包括自

Interview_TC的博客 639

ASSM管理的Oracle段头块结构

访问网站,学习Oracle内部数据结构,详细文档说明,下载Oracle的exp/imp,DUL,logminer,ASM工具的源代码,学习高技术含量的内容。上一篇文章我们介绍了,MSSM管理的Oracle段头块结构,其缺点就是会在高并发时造成段头块挣用,影响访问效率,为此Oracle引入了ASSM管理段内数据块的分配机制。ASSM是Automatic Segment Space Management的缩写,是高版本的Oracle默认的管理方式,使得空间管理更简单,也提高了效率。

tomcoding的博客 290

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

VC中sqlite的使用

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

oracle自管理段,oracle的段管理

oracle的段管理(1)段、区段、块Oracle中的段segment是占用磁盘存储空间的一个对象。从逻辑上讲一个数据库由若干表空间(TABLESAPCE)组成,每个表空间有若干个表(TABLE),每个表又可以分为若干数据段(DATASEGMENT),索引段等,每个段又可分为若干数据库区间(EXTENT),每个区间由若干数据块(BLOCK)组成。区段(EXTENT)是最小的分配单。块(BLOCK)...

weixin_33474104的博客 366

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

oracle区管理方式,ORACLE表空间、段、区的管理方式

ORACLE表空间、段、区的管理方式发布时间:2020-08-15 04:53:37来源:ITPUB博客阅读:62作者:大鲨鱼o0O一、 ORACLE表空间管理ORACLE通过表空间为数据库提供使用空间。由于区(extent)是ORACLE创建对象时的最小分配单元, 所以表空间的管理实际上就是针对于区间的管理。ORACLE表空间的管理方式分为:1.1 字典管理方式(DMT):使用数据字典管理存储空...

weixin_36024829的博客 976

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

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

oracle中块的状态分为,【体系结构】Oracle数据块详解

操作系统块是操作系统读写的最小操作单元,也是操作系统文件的属性之一。当创建一个Oracle数据库时,选择一个基于操作系统块的整数倍大小作为Oracle数据库块的大小。Oracle数据库读写操作则是以Oracle块为最小单位,而非操作系统块。数据库块也称逻辑块或Oracle块,它对应磁盘上一个或多个物理块,它的大小由初始化参数DB_BLOCK_SIZE决定,可以定义数据块为2K、4K、8K、16K、...

weixin_39785669的博客 731

Oracle 段空间管理(Segment Space Management)中的ASSM二级位图块

Oracle 段空间管理(Segment Space Management)中的ASSM二级位图块

chenoracle的博客 788

oracle dmt,lmt,mssm,assm的含义

表空间是由段(segment)组成的,段是由范围(extent)组成的,范围是由连续的(block)组成的。这里也可以通过一幅众所周知的图来表示:当在表空间里创建一个table,index等对象时其实对我们使用者而言称其为对象,但是从oracle存储的角度来说把它称其为segment。我们都知道oracle最小的读写单位是block,但是在为对象分配空间时单位却是extent,这样做的好处其实就是

Laughing 2186

MSSM手动段空间管理(Manual Segment Space Management)解析

手动段空间管理(Manual Segment Space Management,简称MSSM)是Oracle数据库中一种传统的空间管理方式,主要用于控制和管理数据库段(如表、索引等)的空间分配。相比之下,从Oracle 9i开始引入的自动段空间管理(ASSM)使用位图管理空间,减少了对这些参数调整的依赖,能够自动高效地分配和回收空间,降低了管理开销并提高了整体性能。:在MSSM中,DBA需要根据业务需求手动调整自由列表的数量、PCTUSED、PCTFREE等参数,以优化段空间的使用效率和并发性能。

专注于数据库技术分享,包含但不限于Oracle,MySQL,PostgreSQL,ElasticSearch及国产数据库等 851

81-Oracle-块-区-段-表空间-解析

上一期说到Oracle推荐的 LMT+ASSM管理方式:通过监控块的空间利用率(ASSM位图)和行迁移,解决I/O瓶颈;调整区分配策略预;管理高水位线(HWM)避免全表扫描无效数据。:在表空间层级预判数据增长,及时扩容或迁移热数据;通过段分析精准定位空间浪费对象(如空表延迟分配);利用区回收机制释放存储资源。:快速定位存储异常:ORA-01555错误(回滚段配置)、索引分裂(区分配过小)、大表查询缓慢(HWM未回收)。

远方的专栏 1070

ORACLE表空间、段、区的管理方式

一、 ORACLE表空间管理         ORACLE表空间的管理方式分为:          1.1 字典管理方式:          1.2 本地管理方式 二、 ORACLE段管理         ORACLE段的管理分为:          2.1 手动段空间管理          2.2 自动段空间管理 三、 ORACLE区管理          ORACLE区的管理

u013053796的专栏 5096

Oracle 深入学习 Part 9: Storage Structure and Relationships(存储结构与关系)

Oracle深入学习第九章 存储结构与关系

2302_80755459的博客 1631

读书笔记:Oracle数据库中的“段“:数据存储的基本单位

本文介绍了Oracle数据库中"段"的概念及其类型。"段"是Oracle存储数据的基本单位,相当于仓库中的储物柜。常见段类型包括:表段(存储表数据)、索引段(提高查询效率)、LOB段(存储大对象)、分区段(管理大数据量)和簇段(优化相关数据存储)。Oracle提供自动(ASSM)和手动(MSSM)两种空间管理方式,现代版本默认采用延迟段创建功能。文章还通过建表示例说明实际创建表时会生成多个段,并强调版本兼容性问题。作者黄廷忠为Oracle中国高级服务团队成员,提供了个

提供数据库技术支持(系统优化,故障处理,安装升级,数据恢复等) 763

dmt、lmt、mssm,assm 总结

 dmt、lmt、mssm,assm总结表空间是由段(segment)组成的,段是由范围(extent)组成的,范围是由连续的(block)组成的。这里也可以通过一幅众所周知的图来表示:当在表空间里创建一个table,index等对象时其实对我们使用者而言称其为对象,但是从oracle存储的角度来说把它称其为segment。我们都知道oracle最小的读写单位是block,但是在为对象分配空间时单位却是extent,这样做的好处其实就是为了提高效率。上面提到段是由范围组成的,当一个extent被分配给一个s

easyjsf的专栏 3831

oracle ASSM和MSSM

一. 官网说明 Logical Storage Structures http://download.oracle.com/docs/cd/E11882_01/server.112/e16508/logical.htm#CNCPT7668   其中有关ASSM 的内容如下:   Logical Space Management Oracle Database must use logical s

甲骨文可乐的专栏 3566
上一篇: 深入解析Oracle数据块的内部结构
下一篇: ASSM管理的Oracle段头块结构
tomcoding
博客等级 码龄9年 410粉丝 56原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值