有个说法:"UPDATE 表名 NOLOGGING SET ... 。。"
像这样加了NOLOGGING的话,如果涉及数据量很多,且更新字段不是索引列的话,
会快很多,因为只产生少量日志。
可又有人说,"上面这个说法是错的,NOLOGGING不会使update快"我就纳闷了,到底NOLOGGING会不会使update快?为什么??
像这样加了NOLOGGING的话,如果涉及数据量很多,且更新字段不是索引列的话,
会快很多,因为只产生少量日志。
可又有人说,"上面这个说法是错的,NOLOGGING不会使update快"我就纳闷了,到底NOLOGGING会不会使update快?为什么??
对update而言,nologging是无效的。
oracle官方文档上针对nologging的使用场合讲得很详细。
默认情况下,表都是log的, 这样对表的操作都会写入redo log。 也就会为数据的恢复提供了可能性。 但是如果当我们对表进行大量的更新操作的时候,比如往表里插入1000w的数据,这时候就会涉及到2个问题:
1. 写数据
2. 写日志
为了提高插入的速度,我们可以对表关闭写log功能。 SQL 如下:
sql> alter table table_name NOLOGGING; 然后插入数据:
INSERT /*+Append*/ INTO tab1 SELECT * FROM tab2;插入完数据后,再修改表写日志:
sql> alter table table_name LOGGING; 这样在插入的时候只有写数据,没有写log, 速度会块很多,但是也增加了风险,如果出现问题就不能恢复。
所以具体情况,具体对待..------------------------------------------------------------------------------
Blog: http://blog.csdn.net/tianlesoftware
网上资源: http://tianlesoftware.download.csdn.net
相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
Q Q 群:62697716
使用nologging比未使用减少了1%的日志
使用nologging比未使用时间减少14.4%初步结论:在非归档模式下,update是否使用nologging没有效果。
在归档模式下,update是否使用nologging对提高速度有较明显的效果。不知对不对,请高人参与讨论。
------------------------------------------------------------------------------
Blog: http://blog.csdn.net/tianlesoftware
网上资源: http://tianlesoftware.download.csdn.net
相关视频:http://blog.csdn.net/tianlesoftware/archive/2009/11/27/4886500.aspx
Q Q 群:62697716