使用noappend模式进行无日志记录

时间:2019-05-26 14:04:57

标签: oracle performance logging

我想用nologging执行插入语句。

如我所见,唯一的方法是在查询中使用APPEND提示。

问题是APPEND提示不能与DML ERROR LOGGING子句一起使用。

就我而言,我必须使用该子句。

APPEND(no)logging之间有什么联系(实际上意味着将所有数据吐到表的末尾而不检查块中的“孔”)?如何在nologging模式下应用NOAPPEND

我试图更改表的nologging,但是当语句带有NOAPPEND提示时,REDO就会增加。

我正在使用Oracle 11g。

谢谢。

1 个答案:

答案 0 :(得分:0)

APPEND提示和NOLOGGING选项只是在直接路径写入和常规写入之间切换的不同方式。 APPEND提示用于SQL语句,NOLOGGING是表或表空间的选项。

这里的问题是direct-path writes do not work with DML error logging,据我所知,没有直接的解决方法。提示和选项的魔术组合无法使这些功能协同工作。

可能还有其他提高性能的方法。例如,该语句可以并行运行,但可以使用常规写入。或者,如果您只想记录一些特定约束的错误,则可以禁用这些约束,在直接路径写入中执行更改,启用约束并记录constraint exceptions,然后删除限制约束的行。