ORACLE NOLOGGING研究
熟悉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研究的更多相关文章
- Oracle NoLogging Append 方式减少批量insert的redo_size
业务处理中,很多时候使用实表临时表处理中间结果,而实表的Insert操作缺省会记录redo log,针对此问题收集相关测试总结信息如下: [转] 常见dml.ddl语句使用nologging选项所生成 ...
- oracle nologging用法
一.oracle日志模式分为(logging,force logging,nologging) 默认情况是logging,就是会记录到redo日志中,force logging是强制记录日志,nolo ...
- oracle nologging用法(转)
一.oracle日志模式分为(logging,force logging,nologging) 默认情况是logging,就是会记录到redo日志中,force logging是强制记录日志,nolo ...
- 转载:oracle 启动过程--oracle深入研究
Oracle数据库的启动-nomount状态深入解析 通常所说的Oracle Server主要由两个部分组成:Instance和Database.Instance是指一组后台进程(在Windows上是 ...
- Oracle进阶研究问题收集
1. buffer busy waits http://www.itpub.net/thread-1801066-1-4.html 2. 深入理解oracle log buffer http://ww ...
- oracle rowid 研究
SQL> create table tab01(id integer,val varchar(4)); Table created. SQL> insert into tab01 valu ...
- Oracle DBA面试突击题
一份ORACLE DBA面试题 一:SQL tuning 类 1:列举几种表连接方式 答: Oracle的多表连接算法有Nest Loop.Sort Merge和Hash Join三大类,每一类又可以 ...
- oracle 有用站点
使用oradebug修改数据库scn – 提供专业ORACLE技术咨询和支持@Phone13429648788 - 惜分飞 Solaris上使用DTrace进行动态跟踪 老熊的三分地-Oracle及数 ...
- oracle 常用博客网址
使用oradebug修改数据库scn – 提供专业ORACLE技术咨询和支持@Phone13429648788 - 惜分飞 Solaris上使用DTrace进行动态跟踪 老熊的三分地-Oracle及数 ...
随机推荐
- NOIP 2015 DAY2
跳石头 题目背景 一年一度的“跳石头”比赛又要开始了! 题目描述 这项比赛将在一条笔直的河道中进行,河道中分布着一些巨大岩石.组委会已经选择好了两块岩石作为比赛起点和终点.在起点和终点之间,有 N 块 ...
- RabbitMQ 官方NET教程(二)【工作队列】
这篇中我们将会创建一个工作队列用来在工作者(consumer)间分发耗时任务. 工作队列的主要任务是:避免立刻执行资源密集型任务和避免必须等待其完成.相反地,我们进行任务调度:我们把任务封装为消息发送 ...
- [转]Java web 开发 获取用户ip
如果通过了多级反向代理的话,X-Forwarded-For的值并不止一个,而是一串IP值,那么真正的用户端的真实IP则是取X-Forwarded-For中第一个非unknown的有效IP字符串. pu ...
- JavaScript异步加载方案
(1) defer,只支持IE defer属性的定义和用法(我摘自w3school网站) defer 属性规定是否对脚本执行进行延迟,直到页面加载为止. 有的 javascript 脚本 docume ...
- 前端编码规范(2)HTML 规范
文档类型 推荐使用 HTML5 的文档类型申明: <!DOCTYPE html> (建议使用 text/html 格式的 HTML.避免使用 XHTML.XHTML 以及它的属性,比如 a ...
- “发布后tomcat中的classes目录为空”问题
办法:Project-clean,ok,问题解决.
- SQL中EXTRACT() 函数
EXTRACT()("提取"的意思) 函数用于返回日期/时间的单独部分,比如年.月.日.小时.分钟等等. 就是返回出来具体的年,月,日 2008-12-29 16:25:46.63 ...
- shiro登陆权限验证
一>引入shirojar包 <!-- shiro登陆权限控制 --> <dependency> <groupId>org. ...
- DB2数据常用指令
************************************************************** 这个只是个人平时总结,如果有更好的欢迎告诉我,一起学习一起成长 ***** ...
- set statistics profile on实例
set statistics profile on实例 1.SQL语句实例 SQL 代码 复制 SET STATISTICS PROFILE ON GO SELECT COUNT(b.[Sal ...