![](/img/trans.png)
[英]Updating a Microsoft Access 2013 table with data from a pass-through query
[英]Microsoft Access Make-Table Performance with Pass-Through Query
给你的问题访问大师在那里:
我有一个 Oracle 传递查询,它在 Access 程序中大约2 秒内返回一个结果集。 但是,当我尝试在生成表查询中使用该传递查询时,它拖了大约 7 分钟。 (该文件当前驻留在我的桌面上,所有表都是本地的(未链接))。
为了提高性能,我创建了删除/追加查询并使用 VBA 运行它。 然后我尝试使用显式字符串 SQL 查询 DAO db.Execute,引用传递查询 (INSERT/SELECT)。 所有方法都非常慢! 我很想让它接近传递的实际运行时间(再次,2 秒)。
任何见解?
很可能,生成表和传递查询之间没有实际的大的性能差异。 查询实际上需要几分钟才能运行,而您可以在几秒钟内查看一些结果。 向下滚动查询窗口可能会显示查询仍在呈现。
由于传递查询与 ODBC 驱动程序/OLEDB 提供程序接口以解析网络中客户端(即 MS Access)和数据库(即 Oracle)之间的 SQL 语句,因此可能有多种环境或软件原因。
制作表是否可以访问本地? 我的意思是一只狗,并说一辆公共汽车在这里是两种非常不同的东西。
那是oracle 本地的make table,还是您正在考虑将PT 查询用作Access 中LOCAL 表的make 表? 因此,您的比较在这里与珠穆朗玛峰有所不同。
我怀疑如果目标表是“本地”,则飞机 jane 链接到 Oracle 的表与 PT 查询的链接表可能会执行相同的操作。 那是因为您将整个表从网络管道拉到本地表。
如果 PT 查询是将表 100% 生成到 Oracle 服务器上的另一个表? 然后 PT 查询的执行速度应该与您在 Oracle 控制台中键入该命令的速度一样快 - 应该没有区别。
你没有提到行数(编辑 - 我看到你只注意到 16,000 行 - 这是相当小)。 所以问题是网络连接。 这是 LAN(局域网),还是您使用的 VPN 和互联网会慢 100 倍左右。 我的意思是,比典型 LAN 慢 100 倍的连接将慢 100 倍 - 这并不奇怪。
因此,有关正在使用的连接类型和行数的详细信息将在此处发挥重要作用。 但是,如果此处涉及 VPN 和 Internet 连接,则此类连接比您的超级廉价办公室局域网慢约 50 倍。 你可以阅读我的这篇解释这个速度问题的文章: http : //www.kallal.ca//Wan/Wans.html
我不明白为什么 16,000 行需要这么长时间——在最便宜的办公网络上,这将花费不到一秒钟的时间。 使用任何其他客户端来提取该数据不应比 PT 查询运行或工作得更快。 我的意思是,ado.net、ODBC 或 oleDB 不会导致服务器说,嗯,哎呀 - 让发送数据的速度变慢。 所有这些客户端都应该以相同的速率拉取数据。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.