我有一张表t,有20W条左右数据,现在要清空某列
update t set a=null;
这句话居然要运行3分多钟,请问这样正常吗?哪些因素会影响update语句呢,如果表里数据达到千万级怎么办,岂不是要几个小时啦

解决方案 »

  1.   

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

  2.   

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

  3.   

    分批UPDATE,20W数据建议分10次更新,每更新2W条提交一次。