`
fenglingxuewqk
  • 浏览: 83357 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

insert /*+ APPEND*/ 笔记

 
阅读更多

1. append方式添加记录对insert into ... values语句不起作用。
2. append方式批量插入的记录,其存储位置在hwm 之上,即使hwm之下存在空闲块也不能使用。

HWM(高水位线)(High Water Mark):是数据库段管理中的一个重要概念,简单来说HWM就是在段中已经使用和没有使用的块的分界线。在oracle请求空间的时候,如果现有的Freelist中没有足够的空间时,HWM指向的块将被标记为已使用并且HWM将移动到下一个未使用的块。

3. append方式插入记录后,要执行commit,才能对表进行查询。否则会出现错误:
ORA-12838:无法在并行模式下修改之后读/修改对象
4. 在归档模式下,要把表设置为nologging,然后以append方式批量添加记录,才会显著减少redo数量。在非归档模式下,不必设置表的 nologging属性,即可减少redo数量。如果表上有索引,则append方式批量添加记录,不会减少索引上产生的redo数量,索引上的redo 数量可能比表的redo数量还要大。
5. nologging 配合会更快的使用新的BLOCK而不使用FREELIST中的块增加插入速度使用这个hint可以将数据使用直接路径插入到表的高水线之后,由于是连续的没有使用的空间,所以插入速度快。就是说直接插入减少了搜索块的时间。


会在一定程度上造成空间浪费
请看oracle文挡中的描述:
APPEND
The APPEND hint lets you enable direct-path INSERT if your database is runningin serial mode. Your database is in serial mode if you are not using EnterpriseEdition. Conventional INSERT is the default in serial mode, and direct-pathINSERT is the default in parallel mode.
In direct-path INSERT, data is appended tothe end of the table, rather than using existing space currently allocated tothe table. As a result, direct-path INSERT can be considerably faster than conventionalINSERT.

SQL语句中的优化提示
APPEND : Only valid for INSERT .. SELECT. Allows INSERT to work like directload or to perform parallel insert.

分享到:
评论

相关推荐

    日积月累-oracle笔记

    1. **直接路径插入**:使用`INSERT /*+APPEND*/`语句,可以将数据直接写入数据文件,绕过Oracle的标准缓冲区,提高加载速度。但是,这种方法不支持回滚,因此在事务性要求较高的场景下需谨慎使用。 2. **并行插入**...

    java笔记.docx

    - **添加**: 使用`append()`或`insert()`方法添加新字符或子字符串到现有字符串缓冲区。 - **删除**: 使用`delete()`方法删除指定位置的字符。 - **替换**: 使用`replace()`方法替换字符串缓冲区中的部分字符。 - **...

    acm个人训练算法笔记和心得

    ### ACM个人训练算法笔记:String操作详解 #### 引言 在ACM程序设计竞赛中,字符串处理是一项基本且重要的技能。本篇笔记基于C/C++语言,详细介绍了字符串的各种操作方法及其应用场景。 #### 字符串构造 1. **直接...

    Python学习笔记

    - **insert()**:在指定位置插入一个元素,如 `s.insert(1, 'peach')`。 **删除元素** - **del**:删除指定索引处的元素,如 `del s[0]`。 - **pop()**:移除列表中的最后一个元素,并返回该元素,如 `last_fruit ...

    python学习笔记之append的用法介绍

    这意味着你不能通过`append()`在列表中间插入元素,如果你需要在特定位置插入元素,应该使用`insert()`方法。 在实际编程中,`append()`方法经常用于动态构建列表,例如从用户输入、文件读取或其他数据源收集数据时...

    oracle学习笔记.docx

    ### Oracle学习笔记知识点总结 #### 一、SQLLoader导入数据 **1.1 SQLLoader的特点** - **背景介绍**:Oracle 提供了一系列工具用于数据迁移、备份和恢复工作,每种工具都有其特定的应用场景。例如,`EXP` 和 `...

    lucene中文分词公用组件V2.0

    修正1.1版在Linux下不能正常分词功能。 以下是使用代码: ... keyWordBuffer.insert(0, '%'); keyWordBuffer.append('%'); } } } ---------------------------------------------------

    python学习笔记

    - `append()`、`extend()`、`insert()`等方法。 **4. 列表相关的方法** - `sort()`、`reverse()`等。 **5. 集合** - 无序且不包含重复元素的集合类型。 **6. 元组** - 不可变的序列类型。 **7. 序列** - ...

    P204~210C++deque学习笔记.docx

    append 函数也可以连接字符串,例如 string& append(const char *s),string& append(const char *s, int n),string& append(const string &s),string& append(const string &s, int pos, int n) 等。 C++ 中的 ...

    整理的GTK+笔记

    ### 整理的GTK+笔记 #### 一、什么是GNOME? GNOME的意思是“GNU Network Object Model Environment”(GNU网络对象模型环境),是Linux世界令人激动的软件开发成果。尽管其名称较长,但该软件项目的目标却非常...

    个人笔记--Java_API

    - `insert(int offset, String str)`:插入字符串。 - `delete(int start, int end)`:删除字符串。 **3.7 操作日期时间** - **java.util.Date** - **java.text.SimpleDateFormat** - **java.util.Calendar** #...

    Python 学习笔记 王纯业版

    - **添加元素**:使用 `append()` 方法向列表末尾添加元素;使用 `insert(index, element)` 在指定位置插入元素。 - **删除元素**:使用 `remove(element)` 删除列表中第一个匹配的元素;使用 `pop([index])` 删除并...

    python从入门到实践之学习笔记

    ### Python从入门到实践之学习笔记 #### 第一章:Python环境配置与基本操作 **1.1 在Linux系统中检查Python版本** - **步骤**: 1. 打开终端窗口(通过快捷键或搜索`Terminal`)。 2. 输入`python`并按Enter键...

    Python基础知识笔记

    - **增加操作**: 可以通过`append()`添加元素到列表末尾,`insert()`在指定位置插入元素,`extend()`合并列表。 以上只是Python基础知识的一部分,学习Python还需要掌握函数、模块、异常处理、文件操作、面向对象...

    python基础学习笔记

    ### Python基础学习笔记知识点梳理 #### 一、Python学习策略 - **重点阅读经典资料**:初学者应优先系统地学习经典教材或教程,建立起扎实的基础。这些资源往往经过时间检验,内容全面且准确。 - **形成核心知识...

    MAYA笔记 实用技巧

    使用键盘的+/-号可调整物体中心坐标的大小。 #### 十四、视图切换技巧 轻按空格键可切换至鼠标指向的视图,持续按住空格键加右键可选择所需视图。 #### 十五、旋转视图 按住Alt键加左键可进行旋转操作,灵活调整...

    2021年Oracle(DBA)数据库笔记。

    ### 2021年Oracle(DBA)数据库笔记知识点概览 #### 一、Oracle数据库基础知识 **1. 数据库语言分类** - **DQL(Data Query Language,数据查询语言)**: 主要用于查询数据,如 `SELECT` 语句。 - **DML(Data ...

Global site tag (gtag.js) - Google Analytics