问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

alter table enable row movement 有什么影响

发布网友 发布时间:2022-04-13 10:47

我来回答

3个回答

懂视网 时间:2022-04-13 15:09

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

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

  比如

Oracle行迁移的影响

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

Oracle行迁移的影响

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

Oracle行迁移的影响

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

  2 行迁移有什么影响呢?

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

热心网友 时间:2022-04-13 12:17

您好,很高兴为您解答。

分区表的这种update跟一般的update机制上也不一样了(这个你清楚),因此回滚肯定也是不一样的。oracle的回滚是记录块修改前的映像,而不是一个逻辑操作。因此,分区表的update涉及到多个块的修改,理论上应该会产生更多的回滚。可以做个实验看一下undo的生成情况。

如若满意,请点击右侧【采纳答案】,如若还有问题,请点击【追问】

希望我的回答对您有所帮助,望采纳!

热心网友 时间:2022-04-13 13:35

单纯的执行“alter table enable row movement” 并不会对数据库或者数据造成影响。段回收
row movement 意思就是,一个现存的行允许改变其rowid(物理存储地址),通常情况下,数据行在分配了空间之后,行的rowid就固定了。即使以后行长度超出预留的空间,也不会将其移动。12c的“ALTER TABLE XXX MOVE; ”并不受此控制。在修改前最好确认一下当前是否允许行移动,如果是disable的话,操作完后最好改回到disable :“select ROW_MOVEMENT, TABLE_NAME from user_tables”。
允许行移动的目的主要解决以下问题:
行连接:在长数据行的情况下,表会产生行链接,对于io来说,行链接是不利的,为了减少IO提高性能,就需要将行调整为在单个物理存储地址下能保存行的所有信息,这需要行迁移.
flashback:“flashback table xxx to scn 8888888;”由于原始版本的行占据了相应的物理地址,所以,也需要行迁移.
收缩段空间:"alter table xxx shrink space;"由于要把所有段数据向段前挤压,大部分行都需要改变其物理地址.也需要行迁移
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
怎么取消微信亲情卡 米兰花冬季耐寒多少度 猫为什么喜欢咬人 看看是不是触碰到猫咪禁区了? 幼猫开始咬人是不是要磨牙了的表现 为什么刚到家的猫咪咬人 生气可导致女人8大器官受伤害 如何在windows10中打开任务管理器 windows10资源管理器怎么打开 急问!!下列汉字的构造方式"下、雨、客、武、从、荆、日、绳” 贵州黔运紫金文化传媒有限公司怎么样? 贵州黔之龙文化传媒有限公司怎么样? 买商业医疗保险哪家比较好呀? 本人今年18周岁 正在考虑友邦的全佑至珍产品还是平安的平安福 在线等 平安保险福佑安康跟友邦保险全佑至珍哪个好? oracle怎么查看行迁移 我想申请一个怎么申请的 怎样申请新? 在支付宝解除微博绑定了为什么不能绑定新账号 支付宝和微博无法解帮,因为我曾经绑定另一个微博,解邦后才绑定这个微博。现在需要过多久才能解帮呢? 微博邦定了支付宝就不能邦定另一个号吗 怎么测网速?(有线通) 微博注销后绑定的支付宝还可以绑定其他微博吗 做清蒸鲽鱼没有蒸鱼豉油用什么代替 用什么英语听力软件可以下载到MP3上面播放?还有什么音频转换器比较好用? 如何把电脑里的英语听力下载到mp3上 如何用联通赠送的电子券兑换超市代金券、天猫购物券、中石化加油卡 我的电脑把音频设备禁用了,再找显示未安装,怎么调出来? 为什么微视制作相片发送就显示视频已删除 火山小视频发的极限视频为什么会被删除?就连微视平台都会删除极限视频。 微视发视频时显示已删除 怎么回事 我的是OPPO5怎么隐藏应用? 汽车洗车普洗与精洗的区别 宠物普洗和精洗的区别? 精致洗车和普通洗车有什么区别? 精洗鞋与普洗鞋的区别? 普洗和精洗的区别? 精洗与普通洗车的区别? 普通洗车和精洗有什么区别啊 有线宽带测速分为哪几个步聚? 有线宽带的测速网站是哪个? 有线宽带怎样测网速 介绍一下F1的由来??那A1 又是怎么回事?? 克莱恩·沃森旳简介,成就 为什么我打开跑跑卡丁车的时候出现Direct3D Failure #A1就自动关了 我玩跑跑卡丁车出现Direct3D Failure #A1的字样 手机内存告急,如何释放微信占用的手机内存 运行跑跑卡丁车后弹出 Direct3D Failure #A1 错误 同等价位vivo,OPPO和荣耀哪个好点? 为什么我运行跑跑卡丁车后会出现一个Direct 3D Failure #A1 所有赛车比赛 现实中的卡丁车是干什么用的?