可以在 TEMPORARY 表上发出异步提交吗?它是否会使我的交易不那么持久?
CREATE GLOBAL TEMPORARY TABLE my_table_tmp (id number) ON COMMIT PRESERVE ROWS;
CREATE TABLE my_table (id number);
BEGIN
INSERT --+ append
INTO my_table_tmp (id)
SELECT rownum
FROM all_objects;
COMMIT WRITE BATCH NOWAIT; -- continue working without waiting on LGWR
INSERT INTO my_table (id)
SELECT id
FROM my_table_tmp;
COMMIT; -- actually preserve transaction
END;
/
编辑:
是的,我知道它不是严格意义上的 ACID,因为它会在一瞬间绕过 D 部分。问题是 - 它是否“和”ACID 一样好,因为它与只使用真正 COMMIT 的版本没有任何不同的可能场景?还是我弄错了,可能会有所不同?