【发布时间】:2020-01-07 20:07:26
【问题描述】:
你的问题访问大师在那里:
我有一个 Oracle 直通查询,它在 Access 程序中返回大约 2 秒 的结果集。但是,当我尝试在生成表查询中使用该传递查询时,它拖了大约 7 分钟。 (该文件当前位于我的桌面上,所有表都是本地的(未链接))。
为了提高性能,我创建了删除/追加查询并使用 VBA 运行它。然后我尝试使用显式字符串 SQL 查询的 DAO db.Execute,引用传递查询 (INSERT/SELECT)。所有方法都非常慢!我希望它接近传递的实际运行时间(同样是 2 秒)。
有什么见解吗?
【问题讨论】:
-
如何返回结果集?在查询窗口中?尝试在 2 秒后向下滚动窗口,查看查询是否继续计算。我的猜测是您在 2 秒内看到结果,但查询未完成处理。
-
是的——就是这样。它返回约 16,000 条记录,这可能会杀死 MS Access。在 Toad 中,我可以在大约 5 秒内到达结果集的末尾(在查询几乎立即返回之后)。你能把这个作为答案吗?我会标记的。
-
显示代码(vba/sql)!我们可能会提高速度(例如您尝试了 ADODB,或将 AccessDB 链接到 Oracle orafaq.com/node/60)
-
16,000 条记录并不算多,读取整个记录集应该只需要几秒钟(从 ODBC 到 SQL Server 通过 LAN 判断)。
标签: sql ms-access pass-through