我想用nologging
执行插入语句。
如我所见,唯一的方法是在查询中使用APPEND
提示。
问题是APPEND
提示不能与DML ERROR LOGGING
子句一起使用。
就我而言,我必须使用该子句。
APPEND
与(no)logging
之间有什么联系(实际上意味着将所有数据吐到表的末尾而不检查块中的“孔”)?如何在nologging
模式下应用NOAPPEND
?
我试图更改表的nologging,但是当语句带有NOAPPEND
提示时,REDO就会增加。
我正在使用Oracle 11g。
谢谢。
答案 0 :(得分:0)
APPEND
提示和NOLOGGING
选项只是在直接路径写入和常规写入之间切换的不同方式。 APPEND
提示用于SQL语句,NOLOGGING
是表或表空间的选项。
这里的问题是direct-path writes do not work with DML error logging,据我所知,没有直接的解决方法。提示和选项的魔术组合无法使这些功能协同工作。
可能还有其他提高性能的方法。例如,该语句可以并行运行,但可以使用常规写入。或者,如果您只想记录一些特定约束的错误,则可以禁用这些约束,在直接路径写入中执行更改,启用约束并记录constraint exceptions,然后删除限制约束的行。