繁体   English   中英

带有传递查询的 Microsoft Access Make-Table 性能

[英]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 语句,因此可能有多种环境或软件原因。

  1. 客户端机器和服务器之间的网络流量。 避免使用WAN 进行硬连线 LAN连接。 切勿在闪存驱动器或磁盘空间有限的驱动器上使用 Internet 文件夹或运行 Access。
  2. 可能过时的 ODBC 驱动程序/OLEDB 提供程序。 尝试查找与您的 Oracle 版本和 MS Office 版本兼容的最新版本。 并尝试在 64 位架构上运行。
  3. 无法映射到 JET/ACE 数据类型(例如高精度数字类型或大型二进制对象类型)的复杂或大型 Oracle 数据类型。 请参阅此Oracle 文档
  4. 应该压缩甚至反编译的臃肿访问应用程序。
  5. 没有拆分架构的数据库,其中应用程序对象(查询、表单、报告、宏、模块)与表分离。

制作表是否可以访问本地? 我的意思是一只狗,并说一辆公共汽车在这里是两种非常不同的东西。

那是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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM