分区表enable row movement有什么副作用么

[复制链接]
查看11 | 回复9 | 2011-2-18 11:43:33 | 显示全部楼层 |阅读模式
为了保证分区表中执行DML操作,不导致ORA-14402异常。于是,将分区表属性改为enable row movement。
但是不知道这样会不会有什么副作用,请各位指教
回复

使用道具 举报

千问 | 2011-2-18 11:43:33 | 显示全部楼层
最初由 koyko 发布
[B]为了保证分区表中执行DML操作,不导致ORA-14402异常。于是,将分区表属性改为enable row movement。
但是不知道这样会不会有什么副作用,请各位指教 [/B]

enable row movement是你在需要更改分区关键字的时候才用的,这个可能引起你的在关键字上的索引出现问题,可能要重建等操作,其他性能应该不会影响的。你为什么会涉及到更改分区关键字呢?至少你要设计好一点,经常更改的字段不要用做分区关键字。
回复

使用道具 举报

千问 | 2011-2-18 11:43:33 | 显示全部楼层
在什么情况下关键字上的索引需要重建呢?
回复

使用道具 举报

千问 | 2011-2-18 11:43:33 | 显示全部楼层
最初由 koyko 发布
[B]在什么情况下关键字上的索引需要重建呢? [/B]

对分区做ddl操作没有同时update global index或者exchange partition没有with index导致index unusable就需要重建了....

dml操作系统会自动处理..
回复

使用道具 举报

千问 | 2011-2-18 11:43:33 | 显示全部楼层
如果不是频繁改动分区关键字,应该没有什么大的性能影响,不必担心
回复

使用道具 举报

千问 | 2011-2-18 11:43:33 | 显示全部楼层
If there are 1,000,000 rows inserted to table tb_test everday, the column is_ok was partationed.The field value of is_ok will be updated to '1' from '0' in one day.
There are so many querys on the tb_test.is_ok .In this case, is it possible to cause a 'library cache lock'?
回复

使用道具 举报

千问 | 2011-2-18 11:43:33 | 显示全部楼层
这个对性能还是影响蛮大的...
首先我们进行一条update语句,实际oracle是执行了delete,insert,update
delete原来语句(原分区),insert原来语句(将要插入的分区),进行update(在插入分区中)
该过程可以通过logmnr分析redo log还获取三条语句


回复

使用道具 举报

千问 | 2011-2-18 11:43:33 | 显示全部楼层
yangb71881 发表于 2012-6-29 17:41
这个对性能还是影响蛮大的...
首先我们进行一条update语句,实际oracle是执行了delete,insert,update
d ...

又看到了update=delete+insert的影子
回复

使用道具 举报

千问 | 2011-2-18 11:43:33 | 显示全部楼层
gszoracle 发表于 2012-6-30 08:14
又看到了update=delete+insert的影子

你可以自己去用logmnr解析下redo log 看解析这个用enable row movement分区表的情况下它才产生了什么redo sql与undo sql就知道,别用空洞没实际的话回应好学者
回复

使用道具 举报

千问 | 2011-2-18 11:43:33 | 显示全部楼层
yangb71881 发表于 2012-6-29 17:41
这个对性能还是影响蛮大的...
首先我们进行一条update语句,实际oracle是执行了delete,insert,update
d ...

不update分区键的情况下也这样?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行