DB2插入数据不进行日志操作的实现
创始人
2024-07-17 06:10:40
0

DB2插入数据一般都会进行日志操作,不过下面为您介绍的方法实现了DB2插入数据不进行日志操作,如果您感兴趣的话,不妨一看。

在程序中需要使用下面的代码  
          insert   into   a   select   *   from   b   where   ......  
每次插入到a表的记录有600多万条,每次执行该语句DB2都会返回SQLCODE值为-964的错误码,用db2 sql0964命令查看错误原因,DB2的解释为SQL0964C   The   transaction   log   for   the   database   is   full.   然后按照DB2的说明把日志文件的大小和日志文件的数量都扩充了,如下命令  
db2   update   db   cfg   for   MY_DATABASE   using   LOGFILSIZ   7900  
db2   update   db   cfg   for   MY_DATABASE   using   LOGPRIMARY   30  
db2   update   db   cfg   for   MY_DATABASE   using   LOGSECOND   20  
补充一下用的是循环日志  
   
总的日志文件扩大到了1.5G左右,然后执行下面的命令  
db2   "force   application   all"  
db2stop  
db2start  
db2   connect   to   MY_DATABASE   user   db2inst1   uing   db2inst1  
   
***从新调用包含insert   into   ...   select   ...语句的存储过程,此次程序执行完毕,但效率太慢。  
   
后来一想是否能使对某表进行的DML操作不进行日志操作,把a表和b表都删除了,从新建表,建表时选择了not   logged   initially子句,建完表后我把数据从新导入到b表中,***执行包含insert   into   ...   select   ...语句的SQL存储过程,DB2仍旧返回SQLCODE的值为-964的错误码。  
   
有没有一个高效的方法(***能让DB2执行此类方法时不进行日志操作)解决这个问题呢?

-------------

去除记录日志。  
到控制中心--配置--日志--日志活动,配置成不记录日志。

-------------

采用循环日志可以考虑调整一下数据库的commitcount参数

-------------

使用not   logged   initially选项建表也是可以用的。  
但是要先激活not   logged   initially选项;  
在DB2   CLP中的例子;  
DB2   CREATE   TABLE   A   ......   NOT   LOGGED   INITIALLY;  
DB2   +C         //关闭自动提交选项;  
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选项同时被关闭;  
这个时候***执行备份,因为你这一段数据操作是没有日志的,不利于以后恢复;  
   
不过不是很推荐使用这个方法,如果要导入大量数据,还是使用Load,Import好一些;  
想要在程序中写也是可以的,DB2提供了API,可以参考API   Reference

 

 

 

【编辑推荐】

手工分析DB2 sql文执行计划

DB2 SQL脚本批量执行的实现过程

DB2在线导出的方法

db2存储过程常用语句

DB2 CREATE SERVER语句的用法

 

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...