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及数 ...
随机推荐
- codeforces——思路与规律
codeforces 804B http://codeforces.com/problemset/problem/804/B /* 题意:给定一个只含ab的序列,每次操作可将ab变为bba 问 ...
- QQ 临时会话+图标 HTML代码
啦啦啦 QQ会话的HTML代码 <a target="_blank" href="http://wpa.qq.com/msgrd?v=3& uin=2553 ...
- Dijkstra TYVJ 1031热浪 Dijkstra测试数据
测试用邻接表写得Dijkstra 代码写得很烂. 描述 德克萨斯纯朴的民眾们这个夏天正在遭受巨大的热浪!!!他们的德克萨斯长角牛吃起来不错,可是他们并不是很擅长生產富含奶油的乳製品.Farmer Jo ...
- python--3、 可迭代对象、迭代器、生成器
可迭代对象 iterable 可直接作用于for循环的对象统称为可迭代对象. 有 list. dict.tuple.set.str等数据类型,还有 generator(包括生成器和带yield的gen ...
- android黑科技系列——Wireshark和Fiddler分析Android中的TLS协议包数据(附带案例样本)
一.前言 在之前一篇文章已经介绍了一款网络访问软件的破解教程,当时采用的突破口是应用程序本身的一个漏洞,就是没有关闭日志信息,我们通过抓取日志获取到关键信息来找到突破口进行破解的.那篇文章也说到了,如 ...
- 远程连接Oracle设置
1:打开net manager:开始->程序->oracle->配置和移植工具->Net Manager 2:添加服务器名->名子自定义,一般根据项目自定义,自己知道就行 ...
- js弹出层的写法实例
点击后弹出界面,通过判断浏览器长宽自动设定页面宽度和登陆页面位置. <style> /*遮罩层 弹出层*/ .mask { width: 100%; background-color: r ...
- Vs工程高版本向低版本迁移
使用到一个SLAM程序,一些运行库是基于PCL1.7.2Vs11版本,但是Vs11巨慢,应该把程序迁移到Vs10 下面,遇到打不开的问题. 1.修改方法: 参考链接:使用低版本打开高版本VS解决方案 ...
- struct-计算机学习日志
STRUCT实验目的模拟缓冲区溢出的情况.代码总览#include <stdio.h>#include <stdlib.h>typedef struct { int a[2]; ...
- 机器学习K-Means
1.K-Means聚类算法属于无监督学习算法. 2.原理:先随机选择K个质心,根据样本到质心的距离将样本分配到最近的簇中,然后根据簇中的样本更新质心,再次计算距离重新分配簇,直到质心不再发生变化,迭代 ...