首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle在空表中插入/*+追加*/

Oracle在空表中插入/*+追加*/
EN

Database Administration用户
提问于 2017-01-12 10:10:46
回答 2查看 3.8K关注 0票数 0

我在脚本中有以下代码:

代码语言:javascript
复制
execute immediate 'truncate table tab_a drop storage';

insert /*+APPEND*/ into tab_a
select (...)

我想知道这个APPEND提示是否会导致性能的改变,因为表被截断,存储被删除。

欢迎您提供任何信息、提示或资源。

EN

回答 2

Database Administration用户

回答已采纳

发布于 2017-01-12 11:17:23

insert /*+APPEND*/绕过缓冲区缓存并直接写入表段。它还意味着表上不应该有任何触发器,也不应该有唯一的约束。必须满足其他条件,否则提示将被默默地忽略。检查查询执行计划。如果您看到LOAD AS SELECT,则使用直接路径写入。如果您看到LOAD TABLE CONVENTIONAL,那么APPEND提示将被忽略。

请看这个关于约束的答案:

https://stackoverflow.com/a/10239578/836215

票数 2
EN

Database Administration用户

发布于 2017-01-12 10:30:04

不知道你在做什么,这是不可能说的。然而,我可以说,从本质上说,附录的作用是什么。它将对表执行直接路径插入,这意味着它将直接将数据写入数据块,并绕过缓冲区缓存。因此,通常情况下,您将在加载大型数据集时使用该提示,而不是只对少数记录使用。有一些事情需要考虑,例如序列化、空间重用等等。要快速列出清单,请看一下AskTom https://asktom.oracle.com/pls/apex/f?p=100:11:0::NO::P11_发问_ID:1211797200346279484

这是另一个选项,你可以考虑使用取决于你正在做的工作。

票数 2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/160839

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档