1条回答
默认
最新
回答交流
Markdown
请输入正文
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~

Oracle数据库发生行迁移,会带来什么问题?
行迁移只会影响性能,不会影响应用。因为应用不知道存在行迁移,应用使用的SQL与之前没有任何不同。
如果通过一个索引来读发生了行迁移的这一行,索引会指向原来的块,原来的块再指向新块。要得到具体的行数据,原来只要执行两个左右的I/O读取索引,以及一个I/O读取表;现在还需要多执行一个I/O来获取实际的行数据。单对这一行来说,这不是什么大问题,甚至就根本就注意不到。但是,如果这种行所占的比例相当大,而且有大量用户在访问这些行,就会出现副作用了:访问这些数据的速度开始变慢(额外的I/O以及与I/O相关的闩定都会增加访问时间),缓冲区缓存的效率开始下降(需要缓存两个块,而如果行没有迁移就只需缓存一个块),表的大小和复杂性都有所增加。