千家信息网

/*+APPEND*/插入性能的示例分析

发表于:2025-12-01 作者:千家信息网编辑
千家信息网最后更新 2025年12月01日,这篇文章给大家介绍/*+APPEND*/插入性能的示例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。使用append提示进行insert叫做直接路径加载插入。【特点】1、使用
千家信息网最后更新 2025年12月01日/*+APPEND*/插入性能的示例分析

这篇文章给大家介绍/*+APPEND*/插入性能的示例分析,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。

使用append提示进行insert叫做直接路径加载插入。

【特点】

1使用这种提示因为系统不去查找freelist链表中的空闲块,直接在高水标记位以上插入数据,因此速度比较快。但若是对于经常delete的表,浪费磁盘空间太大!

2它不记录日志,因此一旦插入的数据在没有保存回磁盘的时候发生掉电之类的状况插入的数据不能重做。

3/*+append*/后,需要马上提交,否则会影响下一次修改失败(insert,update,delete)

在Oracle Database 10g Enterprise Edition Release 10.2.0.1.0中,如果插入操作的语法是

insert /*+append*/ into XXX values(XXX);

那么系统加的是row exclusive锁,也就是正常insert所加的行级锁,但是如果插入操作的语法是

insert /*+append*/ into XXX select XXX from XXX;

那么系统加的是exclusive锁,相当于表级锁,加表级锁意味着在本会话没有commit的时候其他任何会话都不能再进行insert,update,delete操作

检查数据库归档模式(NOARCHIVELOG、ARCHIVELOG):

Archive log list

或者

SELECT log_mode from v$database;

查看当前redo日志大小:

select name,value,class from v$sysstat where name='redo size';

或者打开统计,这个更准确地统计当前语句生成的redo,推荐使用

set autotrace traceonly statistics

普通插入方式:

insert into t select * from dba_objects;

append插入方式:

insert /*+append*/ into t select * from dba_objects;

Append+nologing插入方式:

insert /*+append*/ into t nologging select * from dba_objects;

【测试结论】

1、无论归档模式、还是非归档模式,append+nologing插入方式效果最好,生成最小的redo日志

2、非归档模式下,append插入模式效果不错

3、归档模式下,append插入模式没有效果

【我的测试】

从以下对比可以看出,增加hint方法,速度增加4

还真的有这么神,都是180万行的表拷贝,我的测试如下:

insert into p_nbsc_ho1 select * from p_nbsc_ho (消耗时间73分钟)

insert /*+append*/ into p_nbsc_ho2 select * from p_nbsc_ho (消耗时间7分钟)

弊端:

insert /*+append*/ 如果不commit的话,会对该表加6级锁,也就是说,即使此时select 这个表都会报错。

因此append提示的语句首先不能是业务表,其次要尽快提交commit,所以一般情况不敢用hint了。

关于/*+APPEND*/插入性能的示例分析就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。

模式 数据 方式 效果 日志 系统 提示 测试 性能 示例 分析 不错 也就是 内容 时候 时间 更多 磁盘 语句 语法 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 服务器怎么进pe 陕西电商软件开发公司 计算机网络技术招生 设计对软件开发的作用 嘉定区机电软件开发收购价格 软件开发有限公司企业管理 外包软件开发工作要求 网络技术专业的就业前景 php表单传入数据库 数据库筛选出字母内容 网络安全小视频该说什么 sql展示数据库的代码 服务器客户端数据库 校园网络安全防诈骗简报内容 东营直销软件开发 网络安全大学是什么专业 嵌入式软件开发期末考试题 网络安全考试scse认证课程 金税盘安全服务器地址没有 小米路由hd改成服务器 网易mc服务器透视挂 如何在家里访问学校服务器文件 软件开发物联网叠加的概念股 兴化市精一软件开发有限公司 上海市贸易学校计算机网络技术 计算机三级数据库技术画图软件 杭州乐图网络技术有限公司 数据库中的表怎么修改 收款方支付宝中国网络技术是 plc无法连接数据库
0