首 页IT知识库翔宇问吧收藏内容
当前位置:翔宇亭IT乐园IT知识库数据库Oracle

简单了解行迁移的影响

减小字体 增大字体 作者:不详  来源:华军资讯  发布时间:2010-02-05 11:03:00

1 行迁移的原因

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

  比如

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

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

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

  2 行迁移有什么影响呢?

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

  3 总结

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

微信搜索“优雅的代码”关注本站的公众号,或直接使用微信扫描下面二维码关注本站公众号,以获取最新内容。

个人成长离不开各位的关注,你的关注就是我继续前行的动力。

知识评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
愿您的精彩评论引起共鸣,带来思考和价值。
用户名: 查看更多评论
分 值:100分 90分 80分 70分 60分 40分 20分
内 容:
验证码:
关于本站 | 网站帮助 | 广告合作 | 网站声明 | 友情连接 | 网站地图
本站部分内容来自互联网,如有侵权,请来信告之,谢谢!
Copyright © 2007-2022 biye5u.com. All Rights Reserved.