zoukankan      html  css  js  c++  java
  • 【Oracle】append

    我们在生产环境中经常遇到需要往表中插入大量数据的情况,怎么样才能让插入数据的速度变快呢?Oracle中的append简直就是神器!!没图说个**,直接上图:


    是不是看晕了?哈哈,莫慌,请看下面总结:

    1. 数据库为归档模式,必须同时有nologging和append才可以;

    2. 数据库为非归档模式,只需要append就可以了。

    为什么使用了append就能提高速度呢?这是因为append可以使数据库在高水位线之上直接插入数据,相对于普通插入,在做rollback的时候需要更少的操作(加了append后的insert,在做rollback时直接把高水位线降到原来位置),所以就可以产生更少的redo。

    PS:提供一下实验可能会用的SQL

    1. 查询数据库状态

    (1)SELECT name,log_mode FROM v$database;

    (2)ARCHIVE LOG LIST;

    2. 修改数据库归档状态

    步骤1:shutdowm immediate

    步骤2:startup mount

    步骤3:alter database archivelog; 或者 alter database noarchivelog;

    步骤4:alter database open;

    3. 查询redo和undo量

    select name,value from (select b.name,a.value from v$mystat a,v$statname b where a.STATISTIC#=b.statistic#) where  name='redo size' or name like 'undo change%';

    The End!

  • 相关阅读:
    URAL1966 Cipher Message 3
    hdu5307 He is Flying
    UVA12633 Super Rooks on Chessboard
    spoj-TSUM Triple Sums
    bzoj3160 万径人踪灭
    bzoj2194 快速傅立叶之二
    FFT NTT 模板
    NOI2009 植物大战僵尸
    最长k可重线段集问题
    最长k可重区间集问题
  • 原文地址:https://www.cnblogs.com/NextAction/p/7366611.html
Copyright © 2011-2022 走看看