【发布时间】:2012-03-23 16:17:25
【问题描述】:
我需要使用 VBA 模块每 6 小时向 Oracle 数据库表中插入一千多行。在每次运行期间,都会在 VBA 中完成一些复杂的预测计算,并且必须将结果值插入到数据库中。
典型的输出范围包括 1000 多行和 13 列。
目前我逐行插入,而且每次插入后都会运行自动提交(ADO DB 默认)。这里有没有更好的方法或流程来提高性能?
目前大约需要 20 - 40 分钟,具体取决于服务器负载。任何性能改进建议。
【问题讨论】:
-
我想知道有多少时间在 Oracle 中,有多少时间在 VBA 中。带有 '
DBMS_MONITOR.SESSION_TRACE_ENABLE的扩展 SQL 跟踪可能会帮助您确定时间花费在哪里。 -
这对于 1000 行来说非常慢。您是否尝试过参数化插入。只做一次提交也会更快。
-
ADO DB 在每次插入后自动提交,我正在研究下面 Jens Schauder 制作的 cmets。