Oracle DML NOLOGGINGOracle DML NOLOGGING
一.NOLOGGING说明
在对大表插入数据的时候,经常会用到nologging选项。Nologging并不是不产生redo,nologging+direct只是不会对数据产生redo(但依然有其他的redo)。
同理logging+direct下undo也是大大地减少,减少的是数据的undo,这里强调的是数据本身的undo,就如同redo的减少也一样,是数据本身的redo,这和数据库是否产生redo和undo是不同的概念,比如空间分配的redoandundo,这就不是数据本身的变化。
在非归档模式下,对于nologging和logging模式,只有使用append,才不会对数据生成redo。
在归档模式下,只有将表置于nologging模式,并且使用append才不会对数据生成redo.
二.归档模式下的示例
两个查询用的脚本--new.sqlcolumnOLD_VALUEnew_valueOLD_VALUEselectvalueOLD_VALUEfromv$mystat,v$statnamewherev$mystat.statistic#=v$statname.statistic#andv$http://doc.xuehai.net='redosize';--diff.sqlselect(value-&OLD_VALUE)OLD_VALUEfromv$mystat,v$statnamewherev$mystat.statistic#=v$statname.statistic#andv$http://doc.xuehai.net='redosize';
数据库运行在归档模式SQL>archiveloglist
数据库日志模式存档模式
自动存档启用
存档终点d:/archivelog
最早的联机日志序列125
下一个存档日志序列127
当前日志序列127
2.1CreateTABLESQL>@?/new.sql
OLD_VALUE
----------
8535492SQL>createtableT_NOLOGnologgingasselect*fromall_objects;
表已创建。SQL>@?/diff
原值1:select(value-&OLD_VALUE)OLD_VALUEfromv$mystat,v$statnamewhere
新值1:select(value-8535492)OLD_VALUEfromv$mystat,v$statnamewhere
OLD_VALUE
----------
83496注:REDOSIZE=83496
SQL>@?/new.sql
OLD_VALUE
----------
8618988SQL>createtableT_LOGloggingasselect*fromall_objects;
表已创建。SQL>@?/diff
原值1:select(value-&OLD_VALUE)OLD_VALUEfromv$mystat,v$statnamewhere
新值1:select(value-8618988)OLD_VALUEfromv$mystat,v$statnamewhere
OLD_VALUE
----------
8491836注:REDOSIZE=8491836
总结:通过上面的2个例子,可以看出用nologging创建表,不会对数据生成redo,仅对数据字典生成redo.
createtablewithnologging...notgenerateredo,justgeneratefordatadictionary2.2DELETESQL>@?/new.sql
OLD_VALUE
----------
17110824SQL>DELETEFROMT_NOLOG;
已删除71711行。SQL>@?/diff
原值1:select(value-&OLD_VALUE)OLD_VALUEfromv$mystat,v$statnamewhere
新值1:select(value-17110824)OLD_VALUEfromv$mystat,v$statnamewhere
OLD_VALUE
----------
26592364注:REDOSIZE=26592364SQL>@?/new.sql
OLD_VALUE
----------
43703188
SQL>DELETEFROMT_LOG;
已删除71712行。SQL>@?/diff
原值1:select(value-&OLD_VALUE)OLD_VALUEfromv$mystat,v$statnamewhere
新值1:select(value-43703188)OLD_VALUEfromv$mystat,v$statnamewhere
OLD_VALUE
----------
26592560
注:REDOSIZE=265925602.3INSERTSQL>@?/new.sql
OLD_VALUE
----------
70295748
SQL>INSERTINTOT_NOLOGSELECT*FRO
ORACLE Nologging 相关知识 收藏 1) Nologging 跟数据库的运行模式有关,8i ...Oracle-DML-NOLOGGING 5页 免费 ORACLE 10g append跟nol... 4页 1下载券 NOLOG...
Oracle的Insert、Update、Delete等DML操作速度的提高_计算机软件及应用_IT/计算机_...如在使用 Update 语句更新价格信息时,加上这个 Nologging 选项就可以显著提高其...
SQL*Net roundtrips to/from client 1 sorts (memory) 0 sorts (disk) 10000 rows processed SQL>insert into a nologging select * from a; 10000 rows ...
oracle常用操作命令全集_IT/计算机_专业资料。包含了几乎对oracle数据库的所有操作...dml; sql> insert /*+parallel(emp,2) */ into emp nologging sql> ...
TMP_ACCT_INFO_CURR_BAL_001 on B_S_ACCT_INFO_CURR_BAL (BACCT_TYPE) parallel(DEGREE 10) NOLOGGING; 5.3 并行DML 操作 Oracle 可以对DML操作使用并行...
oracle经常用命令_计算机软件及应用_IT/计算机_专业资料。oracle经常用命令 ...dml; sql> insert /*+parallel(emp,2) */ into emp nologging sql> ...
Oracle 10G 命令全集_计算机软件及应用_IT/计算机_专业资料。Oracle 10G 命令...dml; sql> insert /*+parallel(emp,2) */ into emp nologging sql> ...
NOLOGGING D 介质恢复是不能恢复临时数据文件 45、以下不是 oracle 数据库系统...C.Oracle 数据库利用还原段中的数据来闪回错误的 DML 操作。 D.闪回技术可以...
NOLOGGING D 介质恢复是不能恢复临时数据文件 45、以下不是 oracle 数据库系统...C.Oracle 数据库利用还原段中的数据来闪回错误的 DML 操作。 D.闪回技术可以...
Oracle Nologging and Append_IT/计算机_专业资料。Oracle Nologging and Append...选项直接路径装载,也就是说不管是否是 NOLOGGING 状态 DML 操作正常情况下肯定...
我要评论