Nologging到底何时才能生效?

已有 891 次阅读2012-12-28 14:09 |个人分类:随谈| , , commit, insert, dirty

非归档模式下,不管表是否有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的决定性作用

路过

鸡蛋

鲜花

握手

雷人

评论 (0 个评论)

facelist

您需要登录后才可以评论 登录 | 加入社区

他的关注

意见
反馈