|
本帖最后由 wolfop 于 2018-1-8 10:16 编辑
你尝试的方法都是错误的。正确的应该是启用并行DML,然后create两张结构一样的表,一个是保留的数据表比如A,一个历史数据表比如a_history,先不建立索引。
alter session force parallel dml parallel 16;
insert first into when来让满要保留的进入A,历史数据进入B 。例子文档有,比如
INSERT FIRST WHEN ottl <= 100000 THEN INTO small_orders VALUES(oid, ottl, sid, cid) WHEN ottl > 100000 and ottl <= 200000 THEN INTO medium_orders VALUES(oid, ottl, sid, cid) WHEN ottl > 290000 THEN INTO special_orders WHEN ottl > 200000 THEN INTO large_orders VALUES(oid, ottl, sid, cid) SELECT o.order_id oid, o.customer_id cid, o.order_total ottl, o.sales_rep_id sid, c.credit_limit cl, c.cust_email cem FROM orders o, customers c WHERE o.customer_id = c.customer_id;做完再建索引和rename
|
|