zoukankan      html  css  js  c++  java
  • DB2建立不记录日志的表

    CREATE TABLE TB_6(ID INT, NAME VARCHAR(100));
    INSERT INTO TB_6 VALUES(1,'JACK');
    INSERT INTO TB_6 VALUES(1,'Timo');
    -----建立无日日志表
    --方法一:(表存在)
    CREATE TABLE TB_7 LIKE TB_6 NOT LOGGED INITIALLY;
    
    
    --方法二:表不存在
    CREATE TABLE TB_8(ID INT) NOT LOGGED INITIALLY;
    
    
    --方法三:先建表,后设置
    CREATE TABLE TB_9(ID INT) ;
    
    ALTER TABLE TB_9 ACTIVATE NOT LOGGED INITIALLY

    但是,当你在数据库中执行UPDATE语句的时候,上述表还是记录日志的,如果想不记录日志,请参照

    https://www.cnblogs.com/OliverQin/p/10219108.html

    1. DB2大数据处理不记录事务日志步骤:
      建表需要添加属性“NOT LOGGED INITIALLY”
      在大批量更改操作的同一个事务开始时执行:“ALTER TABLE tabname ACTIVATE NOT LOGGED INITIALLY”
      执行更新sql
      提交,一个事务完成,后续sql为下一个事务,默认记录事务日志
      但是根据IBM的官方文档及测试,建表的时候不加参数“NOT LOGGED INITIALLY”,直接进行“ALTER TABLE tabname ACTIVATE NOT LOGGED INITIALLY”也是可以的。

    2. IBM官方文档:
    使用 NOT LOGGED INITIALLY 参数减少日志记录
    如果应用程序根据主表创建并填充工作表,并且您不担心这些工作表的可恢复性(因为可以根据主表方便地重新创建它们),
    那么创建工作表时可以在 CREATE TABLE 语句上指定 NOT LOGGED INITIALLY 参数。这样可以减少日志记录并提高性能。
    使用 NOT LOGGED INITIALLY 参数的优点是,不记录在创建表的同一个工作单元中对该表所作的任何更改(包括插入、删除、更新或创建索引操作)。
    这不仅降低了日志记录工作量,还能提高应用程序性能。还可以对现有表使用带 NOT LOGGED INITIALLY 参数的 ALTER TABLE 语句,来获得同样的结果。

    3. 理解
       上述描述说了两个意思:
        1.创建并填充工作表create table A as select * from B 时加NOT LOGGED INITIALLY不记录日志。
        2.在表创建后(无论在建表时有无NOT LOGGED INITIALLY),对于一个事务不记录日志时,用“ALTER TABLE tabname ACTIVATE NOT LOGGED INITIALLY”。
      可以看出不记录日志只是对事务而言,当事务提交后not logged intially选项同时被关闭。
      因为该事务没有记录日志,导致对应的表出现异常后不能被恢复(发生SQL1477N异常,只能将表删除重建),最好在not logged intially后对表执行备份。
      not logged intially方法不被推荐使用,如果要导入大量数据,还是使用Load,Import好一些; 想要在程序中写也是可以的,DB2提供了API,你可以参考API Reference。

    4. sql举例
    DB2 CREATE TABLE A ...... NOT LOGGED INITIALLY; 
    db2 ALTER TABLE A ACTIVATE NOT LOGGED INITIALLY; 
    db2 Insert into a select * from b; 
    db2 commit; 
    commit之前由于打开了not logged intially选项,后面的Sql语句不计日志; 
    commit之后not logged intially选项同时被关闭; 这个时候最好执行备份,因为你这一段数据操作是没有日志的,不利于以后恢复。

    来自:http://www.cnblogs.com/BradMiller/archive/2013/07/18/3198622.html

    HTTPS://呜呜呜.cn blog上.com/Oliver Q in/怕/10219108.HTML
    [HTTPS://Wū wū wū.Cn blog shàng.Com/Oliver Q in/pà/10219108.HTML]
    HTTPS: // on ohh .cn blog .com / Oliver Q in / afraid /10219108.HTML
  • 相关阅读:
    Kettle Spoon 数据源连接中报ORA12505, TNS:listener does not currently know of SID given in connect descriptor的错误
    oracle创建用户和删除用户sql
    Kettle Spoon表输入使用变量
    Kettle Spoon 资源库连接后新建转换打不开,报Invalid byte 1 of 1byte UTF8 sequence异常
    oracle 误删除表/表中数据,恢复方法
    让ie兼容css3新属性backroundsize
    网页设计中为啥少用奇数字体?
    浏览器差异总结,可以用此判断浏览器版本(转)
    ie浏览器f12下调“浏览器模式”和“文档模式”的区别
    jquery的淡入淡出和隐藏,展示函数在ie中应用的bug
  • 原文地址:https://www.cnblogs.com/OliverQin/p/6184089.html
Copyright © 2011-2022 走看看