日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產(chǎn)品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
DB2插入數(shù)據(jù)不進行日志操作的實現(xiàn)

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

從網(wǎng)站建設到定制行業(yè)解決方案,為提供成都網(wǎng)站制作、成都網(wǎng)站設計、外貿(mào)營銷網(wǎng)站建設服務體系,各種行業(yè)企業(yè)客戶提供網(wǎng)站建設解決方案,助力業(yè)務快速發(fā)展。成都創(chuàng)新互聯(lián)將不斷加快創(chuàng)新步伐,提供優(yōu)質(zhì)的建站服務。

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

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

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

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

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

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

使用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選項同時被關閉;  
這個時候***執(zhí)行備份,因為你這一段數(shù)據(jù)操作是沒有日志的,不利于以后恢復;  
   
不過不是很推薦使用這個方法,如果要導入大量數(shù)據(jù),還是使用Load,Import好一些;  
想要在程序中寫也是可以的,DB2提供了API,可以參考API   Reference

【編輯推薦】

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

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

DB2在線導出的方法

db2存儲過程常用語句

DB2 CREATE SERVER語句的用法


本文名稱:DB2插入數(shù)據(jù)不進行日志操作的實現(xiàn)
URL鏈接:http://www.5511xx.com/article/dhgoscc.html