2012-11-15 89 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