gpt4 book ai didi

java - 我怎样才能批量插入?

转载 作者:行者123 更新时间:2023-11-29 07:56:20 26 4
gpt4 key购买 nike

我想用 jdbc 向 TERADATA 插入数据,但是速度很慢。我怎样才能让它更快?

我写了这段代码:

connection_tera= DriverManager.getConnection
(
"jdbc:teradata://192.168.x.xx/database=DBC,tmode=ANSI,charset=UTF8","dbc","dbc"
);

stmt_tera = connection_tera.prepareStatement("insert into a.b values(?)");
//some code here to start while loop
stmt_tera.setObject(i,reset.getobject(i));
stmt_tera.addBatch();
if(addedBatchNumber%100==0)
stmt_tera.executeBatch();
connection_tera.commit();
stmt_tera.clearBatch();
//some code here and finish while loop

我应该将 TYPE=FASTLOAD 之类的参数添加到连接字符串吗?还是别的?

最佳答案

如果您要加载到一个 表,我会考虑使用 JDBC FastLoad。有关 JDBC 将数据插入 Teradata 表的性能的更多详细信息,请参阅 Teradata Developer Exchange 上的以下文章:Speed up your JDBC/ODBC Applications

如果您的表不为空,则将数据加载到首先为空的暂存(中间)表可能是有意义的。然后使用 ANSI MERGE 操作将 INSERT/UPDATE 逻辑应用于目标表。 MERGE 操作将比传统的 INSERTUPDATE 语句执行得更快,因为该操作在 block 级别而不是行级别进行。在某些情况下,您甚至可以避免在数据应用于目标表之前假脱机处理源数据。

这是一个collection示例 Teradata JDBC 驱动程序。程序 205 到 209 是使用 FastLoad 的示例。

关于java - 我怎样才能批量插入?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17443722/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com