【发布时间】:2013-02-20 02:18:35
【问题描述】:
在 sql server 主机上有一个视图,它有大约 100 列,每 4 小时插入大约 40000 条新记录。 我使用 netbeans 编写了一个 java 应用程序,它首先从 SQL Server 主机读取数据并将其插入到不同主机上的 Oracle 数据库表中。
阅读时间很短,从不超过 20 秒,但插入有时需要超过 10 分钟! 我不能使用批处理,因为如果发生异常我需要继续插入,但是如果我使用批处理,它将在第一个异常后终止。
我怎样才能使这个过程更快?
【问题讨论】:
-
这没有意义。您不能使用批次,因为如果其中一个批次发生异常,它将停止插入?如果您不使用批处理,它不会在插入期间的第一个异常之后终止吗?
-
感谢您的回答,我正在使用 try 和 catch 来处理异常,但我搜索了很多它们不适用于批处理
-
你能发布一个关于你如何执行插入的总结版本吗?不知道为什么你不能记录/处理一批的异常,然后转移到下一批
-
这需要很长时间,因为我猜你正在逐行插入记录,特别是如果你正在使用 try catch。你所能做的就是优化你的代码。如果您要分析 oracle 服务器,您会发现它一直在“等待客户端”,而不是等待数据库。您可以使用“适当的”集成工具(如 SSIS 或 Oracle 现在销售的任何产品)来加快流程。
-
您可以使用带有 DML 错误记录的批处理吗?例如:venzi.wordpress.com/2012/11/03/…
标签: java sql-server oracle