包含标签 optimization 的文章

通过DBMS_REDEFINITION更新大表

更新大表的时候通常伴随着大量的redo和undo产生,消耗了不少的资源。同时如果这个字段较长的话,也会产生许多行迁移,因为肯定会有某些块无法容纳下更新后的行的大小。 通常考虑通过DDL的方式来替代对这些大表的更新DML操作,第一时间想到的可能就是CTAS,最后rename回去的方式。但是这会带来一些其他的问题,比如表的其他属性并不会复制到新表当中,其他的约束和……

阅读全文

通过DBMS_PARALLEL_EXECUTE更新大表

DBMS_PARALLEL_EXECUTE包可以将一个任务拆分成很多小块,然后通过并发的方式共同完成任务,从而提高效率。 当你在执行超大表的更新操作时,这个技术都能起到作用: 它在同一时间内只会锁住一小部分的数据集,而不是锁住全表 在整个任务完成之前如果碰见部分更新失败,则其他已完成的任务不受影响 减少了回滚段的消耗 提高了效率 注意DBMS_PARALLEL_EXEC……

阅读全文