我在脚本中有以下代码:
execute immediate 'truncate table tab_a drop storage';
insert /*+APPEND*/ into tab_a
select (...)我想知道这个APPEND提示是否会导致性能的改变,因为表被截断,存储被删除。
欢迎您提供任何信息、提示或资源。
发布于 2017-01-12 11:17:23
insert /*+APPEND*/绕过缓冲区缓存并直接写入表段。它还意味着表上不应该有任何触发器,也不应该有唯一的约束。必须满足其他条件,否则提示将被默默地忽略。检查查询执行计划。如果您看到LOAD AS SELECT,则使用直接路径写入。如果您看到LOAD TABLE CONVENTIONAL,那么APPEND提示将被忽略。
请看这个关于约束的答案:
发布于 2017-01-12 10:30:04
不知道你在做什么,这是不可能说的。然而,我可以说,从本质上说,附录的作用是什么。它将对表执行直接路径插入,这意味着它将直接将数据写入数据块,并绕过缓冲区缓存。因此,通常情况下,您将在加载大型数据集时使用该提示,而不是只对少数记录使用。有一些事情需要考虑,例如序列化、空间重用等等。要快速列出清单,请看一下AskTom https://asktom.oracle.com/pls/apex/f?p=100:11:0::NO::P11_发问_ID:1211797200346279484。
这是另一个选项,你可以考虑使用取决于你正在做的工作。
https://dba.stackexchange.com/questions/160839
复制相似问题