分区表按rowid批量update的性能问题
最近碰到一个难题,有一个分区表有近4000万数据,需要把几个字段全部update一遍。
我的思路是这样的:
先按分区循环,每个分区再按10000条/批循环
批量执行update tableA PARTITION (P1) set col1=?,col2=? where rowid=?;
最后发现是批量执行update语句性能慢。大概10000条要20几秒;tableA的每个分区只有几十万的数据,而其他的非分区表,200万记录,10000条update只要0.3秒左右,性能差别太大了!