导出/导入表的所有信息

时间:2011-12-08 10:19:19

标签: db2 database

对于DB2类的强制分配,我被要求编写o过程以导出“导出有关所有xxx的信息,删除所有xxx并再次导入信息”。其中xxx是我的表。 这个程序必须尽可能有效。

我被困在这里,非常天真地看到两个选择 1)从xxx写一个select *;下降...;插入;使用python或其他东西 2)使用db2的一些导出/导入实用程序

但我可能完全错了,建议?

我注意到的是没有完整性限制。

2 个答案:

答案 0 :(得分:1)

您可以通过“导出/加载/ set integrity”执行此操作。我认为如果你在服务器中执行它是最好的方法。

如果使用python,则必须使用odbc驱动程序或类似驱动程序来获取数据,进程等。

如果你只是使用python来执行命令,那就没关系,最后,它只是对数据库的调用。

如果在其他机器上执行该过程,则净使用量会增加,性能会降低。

使用import,就像使用大量事务日志的文件中每行“插入”一样。相反,load命令将数据直接放入表空间,然后检查引用完整性(更快的进程)

最后,如果您想快速提取信息,可以购买IBM InfoSphere® Optim™ High Performance Unload for DB2 for Linux, UNIX and Windows

答案 1 :(得分:1)

我之前有过类似的任务。 解决方案简单而甜蜜: 简单导出到csv;一旦数据被导出,主要是在禁用日志的情况下对表进行TRUNCATE,然后将数据加载回表中。

EXPORT TO <FileName>.CSV OF DEL SELECT * FROM <TableName>;
ALTER TABLE <TableName> ACTIVATE NOT LOGGED INITIALLY WITH EMPTY TABLE;
LOAD FROM "./<FileName>.CSV" OF DEL INSERT INTO <TableName>;