大數據量遷移的一些心得
最近遷移了一個大約30G的SQL SERVER 2000的數據庫到DB2 8.1。以下為遷移的工作心得:
1、在大表的遷移中,不要因為圖快而先遷移數據然后建立主鍵索引。因為很有可能系統沒有足夠的資源完成這樣的操作。我在遷移超過400萬行記錄的表時,等遷移完數據后,再建立Primary Key時,提示資源不足而出錯。
2、插入數據可以使用DB2的一個特色功能,一個Insert語句,可以帶多個Values。
INSERT INTO T (F1, F2) VALUES (?, ?), (?, ?) , (?, ?), (?, ?), (?, ?)
這樣的方式,要比addBatch的方式要快。
3、主表和從表的外鍵關聯問題
例如主表為A,從表為B。
TABLE A (
A1 VARCHAR(50)
)
TABLE B (
B1 VARCHAR(40),
CONSTRAINT Fk_B FOREIGN KEY (B1) REFERENCES A (A1)
)
外鍵 Fk_B (B1) REFERENCES A (A1)
其中A表數據:
A1
'aa'
'bb'
B表
'Aa'
'bB'
這在SQL Server中,缺省的建庫不區分大小寫,它是合法的。遷移到DB2中時,由于庫是大小寫區分,出現錯誤。
建議:在SQL Server中,我們直接使用區分大小的選項建立數據庫,與所有的支持的數據庫一致。這樣我們的程序更容易發現多數庫支持的錯誤。
4、海量數據庫的遷移工作耗時很長,建議以后規劃這類工作時,給予更多的時間,否則很容易出現延遲或者無法完成任務的情況。

文章來源:
http://www.cnblogs.com/jobs/archive/2004/10/03/48683.html