熟悉oracle的人都知道。通过设置oracle的nologging选项,能够使某些操作高速完毕,风险是数据库备份可能失效。能够使用nologging的操作有非常多,搜集资料整理例如以下:

1.索引的创建和ALTER(重建)。

2.表的批量INSERT(通过/*+append */提示使用“直接路径插入“。

或採用SQL*Loader直接路径载入)。表数据生成少量redo,可是全部索引改动会生成大量redo(虽然表不生成日志,但这个表上的索引却会生成redo。)。

3.Lob操作(对大对象的更新不必生成日志)。

4.通过create table as select创建表。

5.各种alter table操作,如move和split。

6. dml操作始终生成redo,对于lob字段例外(与lob字段的undo方式有关)

以下,我们来使用一下:

首先是归档模式下:

SQL> show user
USER is "YUE"
SQL> @redo.sql STATISTIC# USERNAME NAME VALUE
---------- ------------------------------ -------------------- ----------
178 YUE redo size 684 SQL> create table t2 as select * from t1; Table created. SQL> @redo.sql STATISTIC# USERNAME NAME VALUE
---------- ------------------------------ -------------------- ----------
178 YUE redo size 8573344 SQL> create table t3 nologging as select * from t1; Table created. SQL> @redo.sql STATISTIC# USERNAME NAME VALUE
---------- ------------------------------ -------------------- ----------
178 YUE redo size 8725596

再来看一下非归档模式下:

SQL> @redo.sql

STATISTIC# USERNAME                       NAME                      VALUE
---------- ------------------------------ -------------------- ----------
178 YUE redo size 1392 SQL> create table t4 as select * from t1; Table created. SQL> @redo.sql STATISTIC# USERNAME NAME VALUE
---------- ------------------------------ -------------------- ----------
178 YUE redo size 191000 SQL> create table t5 nologging as select * from t1; Table created. SQL> @redo.sql STATISTIC# USERNAME NAME VALUE
---------- ------------------------------ -------------------- ----------
178 YUE redo size 297176

由此可见,在非归档模式下。对于上述操作。oracle无论nologging是否指定,都尽量不生成redo。

那么,上面全部的能够nologging的操作具有什么共性那?

本人,觉得。全部这些操作都是生成新的数据块或者直接覆盖老数据块的全部内容,比如 insert append操作,是在高水位线上直接插入数据。这也就解释了为什么insert append操作相应的index会生成redo,由于对index的改动即不是新建块也不是覆盖老块的全部内容。

DML操作在nologging模式下之所以生成日志。是由于dml操作的不一定是新块或者覆盖老块全部内容。

而对lob的dml能够不生成redo。是由于lob的dml操作始终是在新块上保存编辑后数据。

ORACLE NOLOGGING研究的更多相关文章

  1. Oracle NoLogging Append 方式减少批量insert的redo_size

    业务处理中,很多时候使用实表临时表处理中间结果,而实表的Insert操作缺省会记录redo log,针对此问题收集相关测试总结信息如下: [转] 常见dml.ddl语句使用nologging选项所生成 ...

  2. oracle nologging用法

    一.oracle日志模式分为(logging,force logging,nologging) 默认情况是logging,就是会记录到redo日志中,force logging是强制记录日志,nolo ...

  3. oracle nologging用法(转)

    一.oracle日志模式分为(logging,force logging,nologging) 默认情况是logging,就是会记录到redo日志中,force logging是强制记录日志,nolo ...

  4. 转载:oracle 启动过程--oracle深入研究

    Oracle数据库的启动-nomount状态深入解析 通常所说的Oracle Server主要由两个部分组成:Instance和Database.Instance是指一组后台进程(在Windows上是 ...

  5. Oracle进阶研究问题收集

    1. buffer busy waits http://www.itpub.net/thread-1801066-1-4.html 2. 深入理解oracle log buffer http://ww ...

  6. oracle rowid 研究

    SQL> create table tab01(id integer,val varchar(4)); Table created. SQL> insert into tab01 valu ...

  7. Oracle DBA面试突击题

    一份ORACLE DBA面试题 一:SQL tuning 类 1:列举几种表连接方式 答: Oracle的多表连接算法有Nest Loop.Sort Merge和Hash Join三大类,每一类又可以 ...

  8. oracle 有用站点

    使用oradebug修改数据库scn – 提供专业ORACLE技术咨询和支持@Phone13429648788 - 惜分飞 Solaris上使用DTrace进行动态跟踪 老熊的三分地-Oracle及数 ...

  9. oracle 常用博客网址

    使用oradebug修改数据库scn – 提供专业ORACLE技术咨询和支持@Phone13429648788 - 惜分飞 Solaris上使用DTrace进行动态跟踪 老熊的三分地-Oracle及数 ...

随机推荐

  1. mvc.global.asax事件

    1.global.asax文件概述 global.asax这个文件包含全局应用程序事件的事件处理程序.它响应应用程序级别和会话级别事件的代码. 运行时, Global.asax 将被编译成一个动态生成 ...

  2. HTML <!DOCTYPE>标签

    一般一个基本html页面的结构,如下代码所示: <html> <head> <title>我是基本的页面结构</title> </head> ...

  3. Kali linux 2016.2(Rolling)之 Nessus安装及Plugins Download Fail 解决方法

    最近,因科研需要,学习Nessus. Nessus是一款优秀的漏洞扫描软件,在其v6 HOME版本中在线更新漏洞插件不成功,采用离线更新,成功地更新了插件,在此将更新方法进行分享. 1.Nessus软 ...

  4. SQLServer2008 将本地excel导入到远程服务器表

    --1.创建链接服务器,相当于创建一个访问远程数据库的快捷方式 exec sp_addlinkedserver 'TestLink', ' ', 'SQLOLEDB ', '111.11.1.111' ...

  5. buf.readInt8函数详解

    offset {Number} 0 noAssert {Boolean} 默认:false 返回:{Number} 从该 Buffer 指定的 offset 位置开始读取一个有符号的8位整数值. 设置 ...

  6. centos开机运行级别更改

    1.使用命令切换运行级别/目标 # systemctl isolate multi-user.target //切换到运行级别3,该命令对下次启动无影响,等价于telinit 3 # systemct ...

  7. 安卓代码迁移:ActionBarActivity: cannot be resolved to a type

    参考链接:http://stackoverflow.com/questions/18830736/actionbaractivity-cannot-be-resolved-to-a-type in e ...

  8. NDK 使用STL

    参考链接:Android中使用STL 1. 在 Application.mk 中添加代码"APP_STL:= gnustl_static"后, 文件中的内容如下: APP_ABI ...

  9. [bzoj3291] Alice与能源计划 (二分图最大匹配)

    传送门 Description 在梦境中,Alice来到了火星.不知为何,转眼间Alice被任命为火星能源部长,并立刻面临着一个严峻的考验.为 了方便,我们可以将火星抽象成平面,并建立平面直角坐标系. ...

  10. CentOS平滑更新nginx版本

    目前使用的nginx版本是1.4.4,平滑升级到nginx1.10.1,具体升级操作流程如下: 1.备份当前使用的nginx程序目录 tar -zcvf ./nginx1.4.4bak.tar.gz ...