首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

关于update性能,该怎么处理

2012-12-18 
关于update性能我有一张表t,有20W条左右数据,现在要清空某列update t set anull这句话居然要运行3分多钟

关于update性能
我有一张表t,有20W条左右数据,现在要清空某列
update t set a=null;
这句话居然要运行3分多钟,请问这样正常吗?哪些因素会影响update语句呢,如果表里数据达到千万级怎么办,岂不是要几个小时啦。。。
[最优解释]
其实需求是,列只是要清空,可以先删除列,再添加列,效率高些
alter table 表名 drop column 列名;
alter table 表 add (列 varchar2(10));

[其他解释]
分批UPDATE,20W数据建议分10次更新,每更新2W条提交一次。
[其他解释]
正常,3分钟很长吗?如果数据量很大,最好分批更新
[其他解释]

引用:
其实需求是,列只是要清空,可以先删除列,再添加列,效率高些
alter table 表名 drop column 列名;
alter table 表 add (列 varchar2(10));

其实没什么需求,就是觉得update效率太低了,如果把一张表里的数据update到另一张表中,当两张表的数据量都在20W以上时,几乎就出不来结果了
所以想了解下update的性能跟哪些表的因素有关,如果两张大表联合update,要更新的数据量较大时有什么好办法没

热点排行