Oracle:为什么并行删除不并行?

时间:2013-07-17 09:08:47

标签: sql oracle parallel-processing dml

我尝试过以下声明。但它没有并行进行。为什么? 我该如何加快操作?

ALTER SESSION ENABLE PARALLEL DML;

DELETE /*+ parallel(20) */
      FROM  table
      WHERE flag != 'N';

enter image description here

1 个答案:

答案 0 :(得分:0)

尝试

ALTER SESSION ENABLE PARALLEL DML;
DELETE /*+ parallel(table, 20) */
  FROM  table
  WHERE flag!= 'N';

您还可以尝试使用CTAS删除数据的其他选项,来自asktom的引用Deleting many rows from a big table

  

创建表new_table不可恢复为select * from old_table where ....;

     

drop table old_table;

     

将new_table重命名为old_table;

     

在old_table(c1,c2)上创建索引old_table_idx1不可恢复的并行5;