现有表 a
字段 id,t2,t3,...t10
t2 varchar2(20)
t3 number(20)
需要
update a set t2=t3 就这么简单但是数据10亿之内
如何提高更新时间
undo 5G
归档空间无限
cpu 8 核谁能给个最优方案
字段 id,t2,t3,...t10
t2 varchar2(20)
t3 number(20)
需要
update a set t2=t3 就这么简单但是数据10亿之内
如何提高更新时间
undo 5G
归档空间无限
cpu 8 核谁能给个最优方案
经常修改的做触发器不行么?
update a set t2=t3 where id between :1 and :2;
commit;
靠 。我在讲课莫
看这样行不update (select a.t2 col1,b.t3 col2 from tb a,tb b where a.id=b.id) set col1=col2
建议先diable掉所有的index以及primary key和constraints
然后调用上述更新语句,
最后重新enable那些索引相的东东
恩 是的 昨天运气好,发现了tom 这个牛人;我现在纠结于rowid的分批方案,资料太少
谢了,我是准备drop index;disable 和drop效率相同吗?我估计是drop后快
disable应该更快一些,维护量更少。你可以试一下。
查看表的物理空间语句如下:select segment_name,sum(bytes)/1024/1024 a from user_extents group by segment_name order by a desc;三、建立若干表索引,检查执行计划和统计信息(在现网操作之前,取出小部分数据必须做测试)四、写存储过程循环更新希望能帮到你,提供些思路。
alter table a nologging ;
alter session enable parallel dml ;
update /*+parallel(a 10) */ a update a set t2=t3 ;我测试了个例子,64305947 行数据在2951.75 秒内完成。测试的那个字段是中文字符,长度在100 char 内的update字段。仅供参考。
up今天正好学习到disable和enable主键,索引。