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.
分享到:
相关推荐
1. **直接路径插入**:使用`INSERT /*+APPEND*/`语句,可以将数据直接写入数据文件,绕过Oracle的标准缓冲区,提高加载速度。但是,这种方法不支持回滚,因此在事务性要求较高的场景下需谨慎使用。 2. **并行插入**...
- **添加**: 使用`append()`或`insert()`方法添加新字符或子字符串到现有字符串缓冲区。 - **删除**: 使用`delete()`方法删除指定位置的字符。 - **替换**: 使用`replace()`方法替换字符串缓冲区中的部分字符。 - **...
### ACM个人训练算法笔记:String操作详解 #### 引言 在ACM程序设计竞赛中,字符串处理是一项基本且重要的技能。本篇笔记基于C/C++语言,详细介绍了字符串的各种操作方法及其应用场景。 #### 字符串构造 1. **直接...
- **insert()**:在指定位置插入一个元素,如 `s.insert(1, 'peach')`。 **删除元素** - **del**:删除指定索引处的元素,如 `del s[0]`。 - **pop()**:移除列表中的最后一个元素,并返回该元素,如 `last_fruit ...
这意味着你不能通过`append()`在列表中间插入元素,如果你需要在特定位置插入元素,应该使用`insert()`方法。 在实际编程中,`append()`方法经常用于动态构建列表,例如从用户输入、文件读取或其他数据源收集数据时...
### Oracle学习笔记知识点总结 #### 一、SQLLoader导入数据 **1.1 SQLLoader的特点** - **背景介绍**:Oracle 提供了一系列工具用于数据迁移、备份和恢复工作,每种工具都有其特定的应用场景。例如,`EXP` 和 `...
修正1.1版在Linux下不能正常分词功能。 以下是使用代码: ... keyWordBuffer.insert(0, '%'); keyWordBuffer.append('%'); } } } ---------------------------------------------------
- `append()`、`extend()`、`insert()`等方法。 **4. 列表相关的方法** - `sort()`、`reverse()`等。 **5. 集合** - 无序且不包含重复元素的集合类型。 **6. 元组** - 不可变的序列类型。 **7. 序列** - ...
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+笔记 #### 一、什么是GNOME? GNOME的意思是“GNU Network Object Model Environment”(GNU网络对象模型环境),是Linux世界令人激动的软件开发成果。尽管其名称较长,但该软件项目的目标却非常...
- `insert(int offset, String str)`:插入字符串。 - `delete(int start, int end)`:删除字符串。 **3.7 操作日期时间** - **java.util.Date** - **java.text.SimpleDateFormat** - **java.util.Calendar** #...
- **添加元素**:使用 `append()` 方法向列表末尾添加元素;使用 `insert(index, element)` 在指定位置插入元素。 - **删除元素**:使用 `remove(element)` 删除列表中第一个匹配的元素;使用 `pop([index])` 删除并...
### Python从入门到实践之学习笔记 #### 第一章:Python环境配置与基本操作 **1.1 在Linux系统中检查Python版本** - **步骤**: 1. 打开终端窗口(通过快捷键或搜索`Terminal`)。 2. 输入`python`并按Enter键...
- **增加操作**: 可以通过`append()`添加元素到列表末尾,`insert()`在指定位置插入元素,`extend()`合并列表。 以上只是Python基础知识的一部分,学习Python还需要掌握函数、模块、异常处理、文件操作、面向对象...
### Python基础学习笔记知识点梳理 #### 一、Python学习策略 - **重点阅读经典资料**:初学者应优先系统地学习经典教材或教程,建立起扎实的基础。这些资源往往经过时间检验,内容全面且准确。 - **形成核心知识...
使用键盘的+/-号可调整物体中心坐标的大小。 #### 十四、视图切换技巧 轻按空格键可切换至鼠标指向的视图,持续按住空格键加右键可选择所需视图。 #### 十五、旋转视图 按住Alt键加左键可进行旋转操作,灵活调整...
- StringBuffer类的常用方法:append、insert等。 - **Runtime类(单态)** - Runtime类的作用:获取与运行环境相关的操作。 - Runtime类的方法:exec(String command)。 - **国际化程序** - 国际化的概念:使程序...
### 2021年Oracle(DBA)数据库笔记知识点概览 #### 一、Oracle数据库基础知识 **1. 数据库语言分类** - **DQL(Data Query Language,数据查询语言)**: 主要用于查询数据,如 `SELECT` 语句。 - **DML(Data ...