成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

DB2數(shù)據(jù)導入時的注意事項有哪些?

數(shù)據(jù)庫
以下文章主要是介紹的是DB2數(shù)據(jù)導入的實際操作中我們大家必須注意的四大事項,以下就是正文的主要內(nèi)容的詳細描述。

此文章主要向大家講述的是DB2數(shù)據(jù)導入的實際操作中我們大家必須注意的四大事項,在將DB2數(shù)據(jù)庫投入生產(chǎn)使用之前,數(shù)據(jù)庫管理員一般都需要先往數(shù)據(jù)庫中導入大量的數(shù)據(jù)。數(shù)據(jù)庫中只有大量的基礎數(shù)據(jù),建立在數(shù)據(jù)庫上的應用軟件才能夠發(fā)揮效益。

 

在將數(shù)據(jù)庫投入生產(chǎn)使用之前,數(shù)據(jù)庫管理員往往需要先往數(shù)據(jù)庫中導入大量的數(shù)據(jù)。數(shù)據(jù)庫中只有大量的基礎數(shù)據(jù),建立在數(shù)據(jù)庫上的應用軟件才能夠發(fā)揮效益。

 

本文主要談的就是在將數(shù)據(jù)從外部文件導入導數(shù)據(jù)庫過程中的一些注意事項。也許這些內(nèi)容能夠幫助管理員解決難題。

一、默認值與空值的爭奪戰(zhàn)。

在數(shù)據(jù)庫表設計的時候,為了數(shù)據(jù)的完整性,往往會對某些列設置一些默認值。特別是某個字段不允許為空時,要設置默認值。當用戶沒有輸入對應的值的時候,就利用默認值來填充。如有一張銷售訂單的表。這個表上有一個字段是“訂單日期”。當用戶沒有輸入數(shù)據(jù)的時候,這個訂單日期就默認為當前系統(tǒng)的日期,從而達到簡化用戶輸入的目的。

現(xiàn)在的問題是,在起初DB2數(shù)據(jù)導入的時候,如果目標文件中沒有這個列對應的值,而這個字段設置了默認值,此時會有什么后果呢? (DB2數(shù)據(jù)庫與SQLServer數(shù)據(jù)庫的異同)

通常情況下,只要字段沒有非空的約束條件(即允許存在空值),則無論這個字段有沒有設置默認值,在導入的時候,只要目標文件沒有對應的內(nèi)容,都一律都會使用NULL值來替代目標文件中缺失的列。如果這個字段有非空的約束(即不允許存在空值),則數(shù)據(jù)庫系統(tǒng)會提示不允許空值的錯誤信息。

也就是說,表中的字段默認值的設置一般情況下在導入的過程中是無效的。當目標文件中不存在某個值的時候,數(shù)據(jù)庫不會以列的默認值來填充,而是一律使用NULL值來填充。

但是,如果數(shù)據(jù)庫管理員一定要讓默認值來填充這些這些列,是否可以呢?在DB2數(shù)據(jù)庫中,這是可以的。只要目的表已經(jīng)定義了默認值,那么就可以在導入的語句中使用USEDEFAUITS選項,就可以讓數(shù)據(jù)庫系統(tǒng)(Oracle數(shù)據(jù)庫系統(tǒng)使用經(jīng)驗六則)在導入的過車觀念中利用默認值來填充目標文件中不存在的數(shù)據(jù)。

注意這里只有目標文件中對應記錄的字段值不存在的時候,才會使用默認值。如果存在的話,則仍然采用目標文件中的值。可見這個NULL值與列默認值之間的戰(zhàn)爭,最后的結果還是在用戶手中。用戶可以通過USEDEFAULT選項來確定到底是否需要默認值。如果某個字段設置為了非空,而且這個列又設置了默認值的話,那么筆者建議采用默認值,這可以在很大程度上簡化數(shù)據(jù)導入的工作。

二、導入過程中的性能考慮。

當將大量的數(shù)據(jù)插入到數(shù)據(jù)庫表中的時候,會消耗比較多的數(shù)據(jù)庫資源,從而影響到數(shù)據(jù)庫的性能。為此在將數(shù)據(jù)導入導數(shù)據(jù)庫的時候,除了需要選擇一個用戶訪問量少的時間。還需要在導入的時候采用合適的手段來提高數(shù)據(jù)導入的性能。如在DB2數(shù)據(jù)庫中,數(shù)據(jù)導入的工具主要分類兩類,分別為裝入使用工具和導入工具。當導入的數(shù)據(jù)量比較多,而且用戶對于性能又有比較嚴格要求的話,那么筆者建立采用裝入使用工具。因為通常情況下,在導入大量數(shù)據(jù)的時候,裝入使用工具能夠提供比較高的性能。

當在客戶端上導入數(shù)據(jù),而不是直接在服務器上導入數(shù)據(jù)的時候,加入一個compound子句也可以改善數(shù)據(jù)庫的性能。這個子句主要是用來對需要插入的數(shù)據(jù)進行分組,即以多少條記錄為單位,向服務器傳送插入請求。由于數(shù)據(jù)需要在客戶端與服務器之間進行傳遞。

客戶端從外部文件中讀取數(shù)據(jù)傳遞到數(shù)據(jù)庫服務器上需要有一段時間;而數(shù)據(jù)庫服務器在接受到客戶端的請求將數(shù)據(jù)插入到表中也需要一段時間。此時如果采用n語句對需要插入的大量記錄進行分組,可以改善數(shù)據(jù)庫的性能。一方面可以讓客戶端與服務器端分工合作,客戶端一邊從外部文件中讀入數(shù)據(jù),服務器端一邊插入數(shù)據(jù),從而減少插入的時間。

另一方面,數(shù)據(jù)分步在網(wǎng)絡在網(wǎng)絡中傳輸,也可以提高網(wǎng)絡傳輸?shù)男阅埽瑯涌梢云鸬教岣咝阅艿哪康摹?傊珼B2數(shù)據(jù)導入作業(yè)往往會降低數(shù)據(jù)庫正常運行的性能。為此在數(shù)據(jù)導入的時候,最好選擇一個比較合適的時間。并且采用以上建議的一些措施來最大程度的降低導入工作對數(shù)據(jù)庫的正常運行帶來的負面影響。

三、讓活動日志分次落實。

在數(shù)據(jù)導入的過程中,其最終還是需要通過Insert語句來實現(xiàn)。而DB2數(shù)據(jù)庫在使用這個語句的時候,數(shù)據(jù)庫引擎將會代表導入操作對標更新進行常規(guī)的記錄。這就好像是在Oracle數(shù)據(jù)庫中將這個表更新的操作記入到日志文件一樣。所以,當導入的記錄比較多就會潛在的長時間占有當前的活動日志,最終導致數(shù)據(jù)庫管理器消耗完日志空間。

為此,在導入數(shù)據(jù)的過程中,如果記錄的數(shù)據(jù)比較大,那么最好使用COMMITCOUNT N子句。這個子句的主要作用就是告訴數(shù)據(jù)庫系統(tǒng),插入N條記錄之后就需要執(zhí)行一次日志落實。當使用了這個子句的時候,如果導入操作失敗,那么在事務回滾期間,所有最后一次落實以后執(zhí)行的的改變都會取消。這還可以減少數(shù)據(jù)導入失敗而造成的損失。

如果沒有采用這個子句,如果導入失敗的話,數(shù)據(jù)庫系統(tǒng)會撤消所有導入的記錄。也就是說,一切都要重頭來過。但是如果采用了這個語句,那么數(shù)據(jù)庫管理員就可以根據(jù)系統(tǒng)提供的最后一個落實點的信息,重新啟用Import命令,并通過提供RESTARTCOUNT N子句來指導這個命令跳過在前面已經(jīng)被報告為成功落實到輸入文件的行數(shù)。

即避免重復導入,來提高數(shù)據(jù)導入效率。數(shù)據(jù)庫管理員可以根據(jù)記錄量的多少來合理的設置這個n值。一般情況下這個值不要設置的太大。不過如果太小的話,也會影響到DB2數(shù)據(jù)導入的性能。如果數(shù)據(jù)量很大,筆者往往將這個值設置為500。不過具體情況具體對待,數(shù)據(jù)庫管理員還是需要根據(jù)經(jīng)驗來判斷選擇一個合適的值。

四、在導入語句中采用格式化選項。

在導入數(shù)據(jù)的時候,一般要求外部文件都能夠遵守嚴格的格式。如果格式不準確的話,那么往往DB2數(shù)據(jù)導入會失敗。所以,有時候數(shù)據(jù)庫管理員在導入的過程中,還不得不采用一些文件類型修飾符,又叫做格式化選項,來規(guī)范外部文件的格式。讓數(shù)據(jù)庫系統(tǒng)能夠正確識別外部文件,從而順利導入外部數(shù)據(jù)。

如默認情況下,外部文件的列與列之間是用英文狀態(tài)下的逗號分割的。如果外部文件不是利用這個符號來分隔的,而是采用冒號或者TAB符號來符合來分隔的,此時數(shù)據(jù)庫管理員有兩個選擇。一是更改原文件中的分隔符號。利用操作系統(tǒng)的相關命令或者其他軟件的幫助,可以改變這個分隔符號。

如通過Excle軟件來變更等等。二是在導入的時候,采用格式化選項,讓導入工具能夠識別這個分隔符。如可以在導入語句中加入COLDEL :子句,告訴數(shù)據(jù)庫系統(tǒng),現(xiàn)在采用的列分隔符不是逗號,而是冒號。如此在不更改原文件的情況下,也可以順利導入數(shù)據(jù)。

除此之外,有時候在外部文件中有可能還會因為疏忽將某條記錄寫成了兩行。由于默認情況下是根據(jù)行來判斷記錄,而不是根據(jù)列分隔符來區(qū)分不同的記錄,所以此時這條記錄會被當作兩條記錄來對待。為了避免這種情況,有時候數(shù)據(jù)庫管理員需要更改分隔符號的優(yōu)先極。

默認情況下,DB2數(shù)據(jù)庫分隔符的優(yōu)先極分別為記錄分隔符、字符串分隔符、列分隔符。也就是說記錄分隔符(往往是換行符號)具有最高的優(yōu)先級別。從而就會發(fā)生上面提到的情況。為了避免將一條記錄 (在兩行或者多行中顯示)被當作多條記錄對待,最好的方法就是利用 MODIFIED BY DELPRIORITYCHAR子句來更改分隔符號的優(yōu)先性。讓列分隔符號具有比較高的優(yōu)先級。

【編輯推薦】

  1. DB2 V7存儲過程構建環(huán)境的正確設置步驟
  2. IBM DB2文件系統(tǒng)已滿如何破解?
  3. 存儲DB2 9 XML 數(shù)據(jù)的作用有哪些?
  4. IBM DB2文件系統(tǒng)已滿如何破解?
  5. 對DB2 batch update中的注意事項描述

 

責任編輯:佚名 來源: CSDN
相關推薦

2010-07-29 09:52:04

DB2數(shù)據(jù)導入

2010-11-01 13:24:15

DB2數(shù)據(jù)導入

2010-08-31 10:53:18

DB2導入數(shù)據(jù)庫

2010-08-17 16:24:32

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

2010-08-06 15:27:14

DB2 batch u

2011-03-14 17:51:04

IBMDB2數(shù)據(jù)庫

2010-07-30 10:11:05

DB2臨時表

2010-08-09 09:05:41

DB2快照函數(shù)

2010-07-29 13:56:32

2010-11-02 13:09:42

DB2性能優(yōu)化

2010-08-04 11:23:59

2010-09-07 13:22:36

IBM DB2

2010-08-04 10:44:32

2010-05-07 10:19:48

Oracle 注意事項

2010-09-06 10:30:14

DB2數(shù)據(jù)庫臨時表

2010-08-12 16:52:01

DB2實施備份

2010-08-19 14:11:29

DB2臨時表

2010-08-03 17:00:29

DB2 batch u

2010-08-12 15:23:18

DB2數(shù)據(jù)遷移

2010-08-09 13:43:37

DB2數(shù)據(jù)遷移
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 日韩中文字幕视频 | 精品国产一区二区三区av片 | 国产精品99久久久久久www | 欧美激情一区二区三区 | 色综合美女 | 一级黄色片免费在线观看 | 欧美片网站免费 | 精品国产不卡一区二区三区 | 日韩综合在线视频 | 成人免费一级视频 | 最新中文字幕在线 | 国产精品爱久久久久久久 | a级片在线观看 | 噜噜噜噜狠狠狠7777视频 | 国产永久免费 | 中文字幕一区二区三区四区不卡 | 成人免费视频在线观看 | 国产精品久久毛片av大全日韩 | 精品国产一区二区三区性色av | 久久精品视频在线观看 | 亚洲一区二区中文字幕 | 黄色av免费 | 国产成人黄色 | 中文精品久久 | 色精品视频 | 综合久久综合久久 | 99在线观看视频 | 欧美一区二区免费电影 | 午夜丁香视频在线观看 | 日韩a在线 | 狠狠草视频| 免费观看黄 | 亚洲精品成人av久久 | 欧美日韩国产精品一区 | va精品| 国产精品夜间视频香蕉 | 久久一区二区免费视频 | 一区网站 | 久久黄视频 | 在线看av网址 | 国产日韩欧美 |