Oracle学习笔记:简单了解行迁移的影响

深入理解 Oracle 数据块:行迁移与行链接的性能影响 行迁移和行链接都是影响 Oracle 数据库性能的重要因素。行迁移主要由 UPDATE 操作引起,而行链接主要由行长度超过块大小引起。通过合理设计表结构、设置 PCTFREE 参数、定期整理表空间、以及避免频繁更新大字段等措施,可以有效地避免和减少这两种现象,从而提升数据库的性能和稳定性。同时,定期监控行迁移和行链接的情况,可以帮助我们及时发现潜在问题并采取相应的优化措施。 阅读详情


1 行迁移的原因
啥是“行迁移”,Oracle的数据按照块保存,如果一块数据磁盘空间无法保存某个数据时(比如以前是1K,现在update到2K,而当前块的空闲空间不足1K),则会将新的数据保存到另外一个新的块里,然后在以前的块保存一个新位置的地址连接。
比如


数据都保存在一个块里面,中间有2块的空闲空间,现在第四行数据要扩容。发现单块的空闲空间不足,则评估合并的空闲空间是否满足



评估合并后的空闲空间依然不满足空间要求,则此时发生“行迁移”



在一个新的块保存了新的第四行数据,然后在原始块保存了新地址的连接。这就是行迁移的过程。


2 行迁移有什么影响呢?

如果你通过一个索引来读这一行,索引会指向原来的块,那个块再指向这个新块。要得到具体的行数据,一般并不是执行两个左右的I/O 就可以得到行数据。单独来看,这不是大问题,甚至根本注意不到。不过,如果这种行所占的比例相当大,而且有大量用户在访问这些行,你就会注意到这种副作用了。访问这些数据的速度开始变慢(额外的I/O 以及与I/O 相关的闩定都会增加访问时间),缓冲区缓存的效率开始下降(需要缓存两个块,而如果行没有迁移就只需要缓存一个块),另外表的大小好复杂性都有所增加。由于这些原因,你可能不希望迁移行。


3 总结
  行迁移不能避免,增加每个块的大小可以减少行迁移的可能行,但也会造成更大的空间浪费。这个平衡点需要根据应用不同进行确定。

ORACLE中的行迁移/行链接 ORACLE中的行迁移/行链接 ——使用utlchain.sql解决行迁移/行链接     一. 什么是行链接和行迁移 1.   行链接 当一条记录太大,一个数据块无法将其存储时,Oracle就会将其存储在相链接的数据块中。如果一条记录中含有数据类型如:LONG、LONG RAW、LOB,行链接则无法避免。 2.   行迁移 当一个数据块已满,而一条记录在更新后长度增加了,或者表上 阅读详情

相关推荐

整合Springboot+MybatisPlus+达梦数据库

整合Springboot+MybatisPlus+达梦数据库,以及一些坑

波波的博客 6677

Oracle的行移动

必须先对要执行闪回表的表启用行移动。启用行移动使您可以指定 Oracle 能否移动表行。行可以移动,例如,在对分区数据执行表压缩或更新操作期间。 alimama_pid="mm_10809884_1047205_2634331"; alimama_titlecolor="0000FF"; alimama_descolor ="000000"; alimama_bgcolor=

Tisty的兵工厂--新Blog:http://www.UbuntuSky.cn 3935

保姆级教程:不用看古早代码,5分钟搞懂泛微ecology9附件存储与接口调用

本文详细解析了泛微ecology9附件存储与接口调用的核心原理,提供从基础概念到实战操作的完整指南。通过拆解文档化附件设计理念、解析RESTful接口参数,并给出Python代码示例,帮助开发者快速掌握附件上传与业务集成的关键技巧,提升二次开发效率。

weixin_28688385的博客 349

Oracle 行迁移详解

行迁移 英文的意思是 Row movement  默认情况下,oracle数据块中的一行其生命周期内是不会发生移动的,即块的rowid不会发生改变. 但是在某些情景下,我们希望行的rowid可以发生变化,这时候我们就需要启动表的row movement特性。 启用row movement特性,使用如下语句: Alter table table_name enable row movement

QianXun 9343

Stata实战:用双向固定效应模型分析房价,从数据清洗到结果解读(附完整代码)

本文详细介绍了如何使用Stata实现房价数据的双向固定效应模型分析,从数据清洗到结果解读的全流程。通过具体代码示例,帮助读者掌握面板模型的应用技巧,特别适合经济学和金融学研究者进行房价影响因素分析。

weixin_31528001的博客 277

避坑指南:ANSYS流固耦合计算中System Coupling数据传递设置与常见报错解决

本文深入解析ANSYS Workbench中System Coupling模块在双向流固耦合(FSI)计算中的应用,详细讲解数据传递机制、典型报错解决方案及高阶调试技巧。通过实际案例展示如何优化耦合步长、处理大变形问题,并提升并行计算效率,帮助工程师有效规避常见技术陷阱。

weixin_29213525的博客 726

关于Oracle行移动、行链接、行迁移

当修改不是行链接的行时,当修改后的行长度大于修改前的行长度,并且该数据块中的空闲空间已经比较小而不能完全容纳该行的数据时,就会发生行迁移。在这种情况下,Oracle会将整行的数据迁移到一个新的数据块上,而将该行原先的空间只放一个指针,指向该行的新的位置,并且该行原先空间的剩余空间不再被数据库使用,这些剩余的空间我们将其称之为空洞,这就是产生表碎片的主要原因,表碎片基本上也是不可避免的,但是我们可以将其降到一个我们可以接受的程度。这种情况下,读取一行数据就会访问2个数据块,增加IO,导致性能下降。

weixin_42821740的博客 1265

STM32串口编程基础知识讲解

本篇文章给大家介绍一下串口的基础编程知识,这些知识是属于串口的理论知识,在开始学习编写代码的时候必须要掌握这些基本的知识点。本篇文章讲解了串口的基本概念知识,大家在学习编写代码时将其掌握才能更好的理解代码。

m0_49476241的博客 1207

oracle迁移后索引是否要重建,什么时候需要重建索引,如何发现该重建索引了

This script determines whether an index is a good candidate for a rebuild or fora bitmap index.All indexes for a given schema or for a subset of schema’s areanalyzed (except indexes under SYS and SY...

weixin_32352621的博客 509

Python中的字典(Dictionary)学习

上一章节,我们学习了列表(List) 和 元组(tuple) 来表示有序集合。而我们在讲列表(list)的时候,我们用了列表(list) 来存储用户的姓名。那么如果我们为了方便联系这些童鞋,要把电话号码也添加进去,该怎么做呢?但是这样很不方便,我们把电话号码记录下来,就是为了有什么事能及时联系上这些童鞋。如果用列表来存储这些,列表越长,我们查找起来耗时就越长。

热情、奔放、快乐编程! 503

【Windows Server 2019】企业虚拟专用网络服务的配置和管理(上)

博文介绍了部署企业虚拟专用网的定义,目的,以及好处。同时说明了实验拓扑图以及虚拟专用网络的工作原理。

VMware, Windows, Linux, Cisco, Container, Kubernetes, Kali 1万+

Oracle 表的移动和索引的重建

缘起一个表空间太大,删除数据后由于文件尾被用,无法resize,打算把所有表空间上的对象move到一个临时存储的表空间做整理。 move一个表到另外一个表空间时,索引不会跟着一起move,而且会失效。(LOB类型例外)表move,我们分为:*普通表move*分区表move*LONG,LOB大字段类型move来进行测试和说明。索引的move,我们通过rebuild来实现SQL> select

qyq88888的专栏 1134

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

Oracle中启用/禁用ROW_MOVEMENT的影响

ROW_MOVEMENT是Oracle数据库的一个参数,它决定了表中的行在发生变化时是否需要移动。当ROW_MOVEMENT被启用时,如果一个行的主键值发生了变化,Oracle将会在表中移动该行到新的位置。相反,如果ROW_MOVEMENT被禁用,当行的主键发生变化时,Oracle将不会移动该行,而是在新位置插入一行,并将旧位置的行标记为删除。

weixin_42821740的博客 2126

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

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

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Oracle行迁移和行链接

行迁移和行链接都会导致Oracle性能下降,这篇文章将介绍什么是行迁移和行链接,它们带来的问题,如何来判断它们,并提供了解决它们的办法。 什么是行迁移和行链接 行迁移 Oracle的数据块会保留部分空间供以后更新使用,通常的数据块结构如下: PCTFREE定义一个块保留的空间百分比,默认是10,表示当数据块的可用空间低于10%后,就不可以被insert了,只能被update(具体看下面

宁静致远 1万+

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

数据迁徙的代价:深度解析Oracle行迁移与行链接的原理、检测与优化方案

【行迁移是整体搬家,行链接是把一个人拆成几块】一个人原来住30平米的小房子,后来东西太多了(UPDATE变长),搬到了50平米的大房子。但户口本(ROWID)上的地址还是老房子,快递员(Oracle)送快递时,先去老房子,看到门上的纸条(转发地址),再送到新房子。一个人有200平米的家具(行大于块大小),一个房间放不下,只能分三个房间存放。快递员取东西时,需要分别跑三个房间才能拿全。行迁移可以通过MOVE/SHRINK消除。行链接无法消除,只能增大块大小或拆分表。

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

oracle行迁移和行链接优化

一. 概述、产生原因及影响 row migration:When a row is to be updated and it cannot find the necessary free space in its block,the oracle will move the entie row into a new block and leave a pointer from the orgin

gumengkai的博客 1803

oracle update row,简单了解 oracle update 原理(测试)、 行迁移/行链接基本认识

update原理:一说起update很多人第一感觉就是delete+insert来实现的包括我也是,后续看了些资料 也做了相关实验在此整理下行update(更新)操作时,server process会将整个行迁移到freespace或相邻的block,编号还是源编号,查询的还是源块,原始数据块仅仅是一个转移地址来指向新块的一个地址信息且原update剩余空间不再被数据库使用(这个过程称为行迁移)o...

weixin_35245810的博客 1017

Oracle数据库中数据行迁移与行链接

在Oracle数据库中存在两种数据存储现象:行迁移和行链接。这两者现象严重时都会导致数据库查询性能严重低下,处理好数据存储的行链接或者行迁移也是有效提升数据库性能的有效方式。 一、行迁移和行链接的定义: 1.行迁移: ORACLE一个BLOCK的DEFAULT SIZE是8K,事实上,一个BLOCK不可以存储8K的数据.一个BLOCK可以存储多少数据,由PCTFREE,PCTUSED参数控制(对于...

qq_32838955的博客 750

ORACLE行链接和行迁移

记录一次spotlight(Oracle 监控工具)报警优化 报警信息:30.26% of rows fetches “continue” to another block (averaged over 30 seconds) 看到这个告警信息首先想到的是数据块可能发生了行链接或者行迁移。 下面是简单的叙述和优化方法 1) 什么是行链接和行迁移 1. 行链接 当一条记录太大,一个数据块无法将其存...

weixin_42955647的博客 504

oracle 分区表行迁移,行迁移对跨分区update效率的影响

测试目的:行迁移对跨分区update效率的影响。创建测试表create table ming.LICISITS_R(EID NUMBER(18) not null,EUTIME DATE default sysdate ,dynamicmap VARCHAR2(200) not null)PARTITION BY RANGE (EUTIME) INTERVAL (numtoyminterval(...

weixin_30878111的博客 586

83-Oracle 行迁移和行链接

​。

远方的专栏 716

行链接和行迁移的秘密

行链接和行迁移的秘密

fsfsdfsdw的博客 843

Oracle行链接(Row chaining) 与行迁移(Row Migration)

一、char与varchar2的区别 1、char的长度是固定的,而varchar2的长度是可以变化的。 比如,存储字符串“101”,对于char(10),表示你存储的字符将占10个字节(包括7个空字符),在数据库中它是以空格占位的,而同样的varchar2(10)则只占用3个字节的长度,10只是最大值,当你存储的字符小于10时,按实际长度存储。 2、char的效率比varchar2的效率稍高。 3、何时用char,何时用varchar2? char和varchar2是一对矛盾的统一体,两者是..

学Java,找哪吒 4632

Oracle行链接(Row chaining) 与行迁移(Row Migration)(1)

在清楚了各个大厂的面试重点之后,就能很好的提高你刷题以及面试准备的效率,接下来小编也为大家准备了最新的互联网大厂资料。《一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码》点击传送门,即可获取!新讲解视频+实战项目源码》点击传送门,即可获取!**

m0_75232472的博客 934
上一篇: 每日IN语(2009-01-07)男人的大脑喜欢女人的内心
下一篇: Oracle学习笔记:INITRANS和MAXTRANS参数的作用
老紫竹
博客等级 码龄19年 1万+粉丝 1252原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值