在 DB2 表中插入 100 万条记录的最快方法是啥?

Posted

技术标签:

【中文标题】在 DB2 表中插入 100 万条记录的最快方法是啥?【英文标题】:What is the fastest way to insert 1 mln+ records in DB2 table?在 DB2 表中插入 100 万条记录的最快方法是什么? 【发布时间】:2014-01-22 13:57:44 【问题描述】:

在 C# 中,我有 100 万多条记录需要插入到 DB2 表中。 在 DB2 表中插入 100 万条记录的最快方法是什么?

我已经检查了几种方法,最快的是根据以下请求检查 1000 行: INSERT INTO tbl (id, rel) 值 (1, 2), (2,3),...

还有其他想法吗?

【问题讨论】:

这里有问题吗?您要在哪个平台上执行此操作?您是想通过一种编程语言还是仅仅通过 DB2 工具来做到这一点? 如果您真的想要最快,请使用 LOAD 实用程序。如果您在远程工作,则需要做更多的工作,但仍然可行。 从 C# 和 DB2 8.2 插入,其中 LOAD 无法通过客户端访问 【参考方案1】:

尝试使用类似的方法记录 1000 条记录:

INSERT INTO table
  SELECT                                       
  cast (RAND()*50000 as numeric(6)) AS id,  
  cast (RAND() as varchar(30)) AS rel,       
  FROM qsys2/COLUMNS                           
   fetch first 1000 rows only                    

更改table 以及与您的表格相关的字段性质/长度。

我假设了

cast (RAND()*50000 as numeric(6)) AS id

id 是数字 6 字节

最后一行限制插入 1000 行

【讨论】:

以上是关于在 DB2 表中插入 100 万条记录的最快方法是啥?的主要内容,如果未能解决你的问题,请参考以下文章

每天插入和更新 400 万条记录

将数百批 500k - 300 万条记录插入 PostgreSQL 数据库的最快方法

如何从 db2 表中删除数百万条记录

在 C# 中将 100 000 条记录插入 MDB 文件的最快方法是啥

将 100 万条记录从 SQL Server 插入 BigQuery 表,通过 CDATA odbc 驱动程序链接

数据库缓慢检索/更新/插入问题,每个表中有超过 500 万条记录