博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DB2建立不记录日志的表
阅读量:5332 次
发布时间:2019-06-14

本文共 1702 字,大约阅读时间需要 5 分钟。

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

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选项同时被关闭; 这个时候最好执行备份,因为你这一段数据操作是没有日志的,不利于以后恢复。

来自:

转载于:https://www.cnblogs.com/OliverQin/p/6184089.html

你可能感兴趣的文章
Algorithm——何为算法?
查看>>
Web服务器的原理
查看>>
小强升职计读书笔记
查看>>
常用的107条Javascript
查看>>
#10015 灯泡(无向图连通性+二分)
查看>>
忘记root密码,怎么办
查看>>
linux设备驱动归纳总结(三):1.字符型设备之设备申请【转】
查看>>
《黑客与画家》 读书笔记
查看>>
bzoj4407: 于神之怒加强版
查看>>
mysql统计一张表中条目个数的方法
查看>>
ArcGIS多面体(multipatch)解析——引
查看>>
css3渐变画斜线 demo
查看>>
JS性能DOM优化
查看>>
设计模式 单例模式 使用模板及智能指针
查看>>
c#的const可以用于引用类型吗
查看>>
手动实现二值化
查看>>
What Linux bind mounts are really doing
查看>>
linux top命令详解
查看>>
博弈论小结
查看>>
模拟Post登陆带验证码的网站
查看>>