Db2 导出/导入表的所有信息

Db2 导出/导入表的所有信息,db2,database,Db2,Database,对于一个DB2类的强制赋值,我被要求编写一个o过程来导出“导出关于所有xxx的信息,删除所有xxx并再次导入信息”。其中xxx是我的表。 该程序必须尽可能有效 我被困在这里,很天真,我看到了两种选择 1) 从xxx中写入select*;滴插入;使用python之类的东西 2) 使用db2的一些导出/导入实用程序 但我可能完全错了,是吗 我注意到没有完整性约束。您可以通过“导出/加载/”来实现。我认为在服务器上执行这是最好的方法 如果使用python,则必须使用odbc驱动程序或类似程序来获取数据

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

我被困在这里,很天真,我看到了两种选择 1) 从xxx中写入select*;滴插入;使用python之类的东西 2) 使用db2的一些导出/导入实用程序

但我可能完全错了,是吗

我注意到没有完整性约束。

您可以通过“导出/加载/”来实现。我认为在服务器上执行这是最好的方法

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

如果您使用python只是执行命令,那么就可以了,最后,它只是对数据库的调用

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

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


最后,如果您想快速提取信息,您可以购买我以前有过类似任务的

。 解决方案简单而甜蜜: 简单导出到csv;一旦数据被导出,主要的事情是在禁用日志的情况下截断表,然后将数据加载回表中

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>;
导出到DEL SELECT*FROM的.CSV;
ALTER TABLE ACTIVE初始未记录,表格为空;
从DEL INSERT的“/.CSV”加载到;

No more information,我可以在服务器上运行命令(我想没问题),我必须导出的表(只有一个表)有10^6行。我对我的问题进行了评论,没有更多的信息,因为我认为最好的方法似乎是在python上运行系统命令。类似于system(db2 export…)对吗?好的,现在我正在使用del“select*from xxx”的命令
db2 export to myfile2.del
导入如何?现在还不清楚如何使用它。为什么我要使用integrity命令呢?是的,您可以使用python作为脚本文件。您将调用db2命令,整个过程将在数据库中进行。当您使用“导入”时,db2将文件作为每行的“插入”语句进行处理,将其写入事务日志,并在最后提交。相反,在不使用事务日志的DB2中,有一个工具可以更快地插入事务,这就是load命令。唯一的问题是,加载后,您必须运行set integrity来验证数据。在Google中执行:db2加载vs导入,您将看到。例如:我得到这个
SQL3306N在表中插入一行时发生了一个SQL错误“-964”。SQL0964C数据库的事务日志已满。SQLSTATE=57011
使用导入时出错。我需要尝试导入和加载这两种方法来记录我的实验