2012-11-15 88 views
2

如何在Netezza中同時插入多行?我有大約20K的記錄插入,但它需要1個小時(!)把他們都在使用單刀片Netezza - 插入多行很慢

INSERT INTO MYTABLE VALUES (2, 2, 2, 'E') , (3, 4, 5, 'Z') --doesn't work 

這是我使用的是什麼,現在

INSERT INTO MYTABLE VALUES (2, 2, 2, 'E'); 
INSERT INTO MYTABLE VALUES (3, 4, 5, 'Z'); 
... 
+0

[Insert into into table using SQL](http://stackoverflow.com/questions/10744662)/insert-into-table-using-sql) –

+1

你的意思是它不起作用?或者它正在工作,但它很慢?他們是兩個不同的問題。 –

+1

如果要逐行插入記錄,則應重新考慮爲什麼要使用爲每批加載的數百萬行進行優化的數據庫。 –

回答

2

不是每一個數據庫支持多行插入。所以,你將不得不使用不同的插入,或者您也可以使用:

INSERT INTO MYTABLE 
select 2, 2, 2, 'E' union all 
select 3, 4, 5, 'Z' 
8

Netezza公司不與單更新或插入表現良好。我們所做的是Upserts或我們所說的殺死和填充。使用Cognos Data Manager(ETL),我們可以找到所有更新,然後在使用NZ Load將它們附加回來之前從表中刪除它們。對於插入,我們只是追加它們。都使用NZ負載。比緩慢而痛苦的單曲(一次一張)更新或插入要好得多。

+1

不要忘記,根據你更新的數量,你需要一個梳理過程的表格,因爲如果你每天插入幾百萬行,你的表格將會快速增長。 –

2

Netezza Performance Server(NPS)主要關注在線分析事務(OLAP)。它主要關注批量加載。所以如果你的插入記錄很大,那麼去NZLOAD將會非常快。 語法: nzload -db -host -u -pw -t -df -delim -dateDelim -lf -bf