前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【DB笔试面试525】在Oracle中,行链接和行迁移有什么区别?

【DB笔试面试525】在Oracle中,行链接和行迁移有什么区别?

作者头像
小麦苗DBA宝典
发布2019-09-29 15:09:02
9720
发布2019-09-29 15:09:02
举报

题目部分

在Oracle中,行链接和行迁移有什么区别?

答案部分

当一行的数据过长而不能存储在单个数据块中时,可能发生两种事情:行链接(Row Chaining)或行迁移(Row Migration)。

① 行链接(Row Chaining):当第一次插入行时,由于行太长而不能容纳在一个数据块中时,就会发生行链接。在这种情况下,Oracle会使用与该块链接的一个或多个数据块来容纳该行的数据。行链接经常在插入比较大的行时才会发生,例如包含LONG、LONG ROW、LOB等类型的数据。在这些情况下,行链接是不可避免的。行链接通常由INSERT操作引起。

② 行迁移(Row Migration):当一个行上的更新操作导致当前的数据增加以致于不能再容纳在当前块,这个时候就需要进行行迁移,在这种情况下,Oracle将会迁移整行数据到一个新的数据块中。一个行迁移意味着整行数据都将会移动,原始的数据块上仅仅保留的是指向新块的一个地址信息。发生行迁移的时候行的ROWID不会改变。行迁移的情况主要是由于表上的PCTFREE参数设置过小导致,所以必须设置一个合适的PCTFREE参数。可以使用exp/imp工具导入导出来处理行迁移。行迁移通常由UPDATE操作引起。

& 说明:

有关行迁移和行链接更多的内容可以参考我的BLOG:http://blog.itpub.net/26736162/viewspace-2139126/

本文选自《Oracle程序员面试笔试宝典》,作者:李华荣。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-03-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DB宝 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档