Nologging到底何时才能生效?(摘)
非归档模式下,不管表是否有nologging,append都会减少redo的生成:因append模式是将数据插入临时表空间的临时段中,而该表空间里的所有对象是不会有undo信息的,commit的时候就把该段移接到操作表的hwm屁股后;这是否是oracle文档上说的direct-pat insert操作是要单独一个事务的原因(这点与操作的parallelism有无关系)?redo有两部分,操作表seg的dirty blocks的redo,该操作生成的undo seg的dirty block的redo(不考虑dbms本身字典变化的redo),这样append就省了很多redo,因为即没有操作表seg的dirty block也无undo 段的redo(因数据在临时段里插入)。而归档模式下,append+nologging才能减少redo的生成~
这样的话,比如一个类dss生产系统,按tom的话说是只有开发db才noarchive,生产系统肯定要archive。那么在一个类dss的生产系统(must be archived)做数据装载时,使用append+nologging(maybe +parallel)来加快数据加载的时间。
非归档的数据库 只要append一个条件就能起减少redosize的决定性作用
页:
[1]