• logging、nologging与insert、insert/*+ append */之间的关系


    logging或者nologging属性可以在表空间级别、表级别指定。表级别指定的属性会覆盖表空间级别的属性。

    force logging属性可以在数据库级别、表空间级别指定。如果在数据库级别指定了force logging,那么在表空间、表指定nologging将变的无效;同样在表空间级别指定了force logging,表指定nologging会变的无效。

    在非归档模式下:
    1、在logging和nologging模式下,使用普通insert插入数据,会产生标准量的redo。
    2、在logging和nologging模式下,使用inert/*+ append */插入数据,产生的redo大量减少。
    3、综上:logging和nologging模式几乎没有区别。

    在归档模式下:
    1、在logging模式下,使用普通insert插入数据,会产生标准量的redo;而使用inert/*+ append */插入数据,产生的redo不会明显减少。
    2、在nologging模式下,使用普通insert插入数据,会产生标准量的redo;而使用inert/*+ append */插入数据,产生的redo大量减少。

    可见使用inert/*+ append */提高数据插入速度有2点原因:
    1、append会在高水位线以上插入数据,不会检查高水位线之下的空闲块。
    2、配合nologging属性,减少redo的产生。
    3、减少undo的产生。


    顺便说一下create table ... as select ...  和 create table ... nologging as select ...
    create table ... as select ...这种建表加载数据的方式可以看做是inert/*+ append */ ,因为使用create table ... nologging as select ...,产生的redo和undo会大量减少,但是会多于先nologging建表,然后inert/*+ append */插入数据。

  • 相关阅读:
    树莓派2 安装mono3.0运行mvc4
    iis认证方式
    Zabbix 4.0 配置邮件报警功能
    poj3276 Face The Right Way
    jeecg bootstrap框架 构造下拉列表,当选中的值改变时,自动填充其关联控件的值
    JavaFX 构造具有勾选框 checkbox 的树 TreeView
    初学Spring Boot 无法加载主类的错误和 Tomcat 无法启动的问题
    C#ORM中的对象映射
    OpenXML性能真的低下吗?
    IIR滤波器软件实现(Matlab+C++)
  • 原文地址:https://www.cnblogs.com/linyu51/p/13743114.html
Copyright © 2020-2023  润新知