le nologging ne fonctionne que pour les opération DML insert /*+APPEND*/ et pour certains DDL (style rebuild index).
Pour un delete, il n'y a pas vraiment le choix. éventuellement avec insert into temp / truncate t / insert into t / truncate temp
au lieu de
Code:
DELETE t WHERE x='@';
Code:
1 2 3 4 5 6 7 8 9
|
CREATE TABLE t(x CHAR) NOLOGGING;
INSERT INTO t VALUES('@');
INSERT INTO t VALUES('#');
CREATE TABLE temp_t NOLOGGING AS SELECT * FROM t WHERE 1=0;
INSERT /*+ APPEND */ INTO temp_t SELECT * FROM t where lnnvl(x='@');
TRUNCATE TABLE t;
INSERT /*+ APPEND */ INTO t SELECT * FROM temp_t;
TRUNCATE TABLE temp_t; |