zoukankan      html  css  js  c++  java
  • 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 */插入数据。

  • 相关阅读:
    HashMap按键排序和按值排序
    LeetCode 91. Decode Ways
    LeetCode 459. Repeated Substring Pattern
    JVM
    LeetCode 385. Mini Parse
    LeetCode 319. Bulb Switcher
    LeetCode 343. Integer Break
    LeetCode 397. Integer Replacement
    LeetCode 3. Longest Substring Without Repeating Characters
    linux-网络数据包抓取-tcpdump
  • 原文地址:https://www.cnblogs.com/linyu51/p/13743114.html
Copyright © 2011-2022 走看看