自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

DB2插入數(shù)據(jù)不進(jìn)行日志操作的實(shí)現(xiàn)

數(shù)據(jù)庫(kù)
在DB2數(shù)據(jù)庫(kù)中使用Insert語(yǔ)句時(shí),能否不進(jìn)行日志操作呢?答案是肯定的,下文對(duì)該方法的實(shí)現(xiàn)過(guò)程作了詳細(xì)的介紹,供您參考。

DB2插入數(shù)據(jù)一般都會(huì)進(jìn)行日志操作,不過(guò)下面為您介紹的方法實(shí)現(xiàn)了DB2插入數(shù)據(jù)不進(jìn)行日志操作,如果您感興趣的話(huà),不妨一看。

在程序中需要使用下面的代碼  
          insert   into   a   select   *   from   b   where   ......  
每次插入到a表的記錄有600多萬(wàn)條,每次執(zhí)行該語(yǔ)句DB2都會(huì)返回SQLCODE值為-964的錯(cuò)誤碼,用db2 sql0964命令查看錯(cuò)誤原因,DB2的解釋為SQL0964C   The   transaction   log   for   the   database   is   full.   然后按照DB2的說(shuō)明把日志文件的大小和日志文件的數(shù)量都擴(kuò)充了,如下命令  
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  
補(bǔ)充一下用的是循環(huán)日志  
   
總的日志文件擴(kuò)大到了1.5G左右,然后執(zhí)行下面的命令  
db2   "force   application   all"  
db2stop  
db2start  
db2   connect   to   MY_DATABASE   user   db2inst1   uing   db2inst1  
   
***從新調(diào)用包含insert   into   ...   select   ...語(yǔ)句的存儲(chǔ)過(guò)程,此次程序執(zhí)行完畢,但效率太慢。  
   
后來(lái)一想是否能使對(duì)某表進(jìn)行的DML操作不進(jìn)行日志操作,把a(bǔ)表和b表都刪除了,從新建表,建表時(shí)選擇了not   logged   initially子句,建完表后我把數(shù)據(jù)從新導(dǎo)入到b表中,***執(zhí)行包含insert   into   ...   select   ...語(yǔ)句的SQL存儲(chǔ)過(guò)程,DB2仍舊返回SQLCODE的值為-964的錯(cuò)誤碼。  
   
有沒(méi)有一個(gè)高效的方法(***能讓DB2執(zhí)行此類(lèi)方法時(shí)不進(jìn)行日志操作)解決這個(gè)問(wèn)題呢?

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

去除記錄日志。  
到控制中心--配置--日志--日志活動(dòng),配置成不記錄日志。

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

采用循環(huán)日志可以考慮調(diào)整一下數(shù)據(jù)庫(kù)的commitcount參數(shù)

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

使用not   logged   initially選項(xiàng)建表也是可以用的。  
但是要先激活not   logged   initially選項(xiàng);  
在DB2   CLP中的例子;  
DB2   CREATE   TABLE   A   ......   NOT   LOGGED   INITIALLY;  
DB2   +C         //關(guān)閉自動(dòng)提交選項(xiàng);  
db2=>ALTER   TABLE   A   ACTIVATE   NOT   LOGGED   INITIALLY;  
db2=>Insert   into   a   select   *   from   b;  
db2=>commit;  
commit之前由于打開(kāi)了not   logged   intially選項(xiàng),后面的Sql語(yǔ)句不計(jì)日志;  
commit之后not   logged   intially選項(xiàng)同時(shí)被關(guān)閉;  
這個(gè)時(shí)候***執(zhí)行備份,因?yàn)槟氵@一段數(shù)據(jù)操作是沒(méi)有日志的,不利于以后恢復(fù);  
   
不過(guò)不是很推薦使用這個(gè)方法,如果要導(dǎo)入大量數(shù)據(jù),還是使用Load,Import好一些;  
想要在程序中寫(xiě)也是可以的,DB2提供了API,可以參考API   Reference

 

 

 

【編輯推薦】

手工分析DB2 sql文執(zhí)行計(jì)劃

DB2 SQL腳本批量執(zhí)行的實(shí)現(xiàn)過(guò)程

DB2在線(xiàn)導(dǎo)出的方法

db2存儲(chǔ)過(guò)程常用語(yǔ)句

DB2 CREATE SERVER語(yǔ)句的用法

 

責(zé)任編輯:段燃 來(lái)源: 互聯(lián)網(wǎng)
相關(guān)推薦

2010-08-27 11:22:01

DB2日志文件歸檔

2010-08-17 16:04:29

DB2數(shù)據(jù)庫(kù)

2010-09-01 10:17:14

DB2日志

2010-11-02 14:53:38

DB2權(quán)限

2010-08-18 17:15:23

DB2 實(shí)現(xiàn)split

2010-11-03 16:32:10

DB2創(chuàng)建數(shù)據(jù)庫(kù)

2010-08-09 16:46:05

DB2備份

2015-10-23 16:40:21

DB2刪除數(shù)據(jù)

2010-11-03 13:50:49

DB2刪除重復(fù)數(shù)據(jù)

2009-03-20 11:33:45

DB2數(shù)據(jù)轉(zhuǎn)移數(shù)據(jù)庫(kù)

2010-09-30 15:52:55

DB2循環(huán)查詢(xún)

2011-05-11 13:01:07

DB2數(shù)據(jù)恢復(fù)數(shù)據(jù)備份

2010-08-02 14:34:53

DB2數(shù)據(jù)移動(dòng)

2010-07-27 09:29:40

DB2數(shù)據(jù)移動(dòng)

2010-08-03 13:56:11

DB2表復(fù)制

2010-09-30 16:46:11

DB2操作語(yǔ)句

2010-11-03 14:52:26

DB2列轉(zhuǎn)行

2010-08-11 12:34:59

DB2 Q 復(fù)制配置

2011-05-16 14:42:12

DB2數(shù)據(jù)庫(kù)實(shí)用操作

2010-08-11 09:14:33

DB2數(shù)據(jù)類(lèi)型
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)