Microsoft Access Make-Table 传递查询的性能
Microsoft Access Make-Table Performance with Pass-Through Query
你的问题访问专家在那里:
我有一个 Oracle 传递查询,它在 Access 程序中 returns 在大约 2 秒 后设置了结果。但是,当我尝试在 make-table 查询中使用该传递查询时,它拖了大约 7 分钟。 (该文件当前位于我的桌面上,所有 table 都是本地的(未链接))。
为了提高性能,我创建了 delete/append 查询,并使用 VBA 创建了 运行 查询。然后我尝试使用显式字符串 SQL 查询的 DAO db.Execute,引用传递查询 (INSERT/SELECT)。所有方法都非常慢!我想让它接近实际的 运行 传递时间(同样是 2 秒)。
有什么见解吗?
make-table 和传递查询之间可能没有实际的大性能差异。查询实际上需要几分钟才能达到 运行,而您可以在几秒钟内查看一些结果。向下滚动查询 window 可能会显示查询仍在呈现。
因为直通查询与 ODBC driver/OLEDB 提供程序接口以跨网络、多个环境或在客户端(即 MS Access)和数据库(即 Oracle)之间解析 SQL 语句软件原因可能是一个因素。
- 客户端计算机和服务器之间的网络流量。避免 WAN for hard-wired LAN 连接。切勿使用 Internet 文件夹或 运行 访问闪存驱动器或有限磁盘驱动器 space。
- ODBC driver/OLEDB 提供程序可能已过时。尝试找到与您的 Oracle 版本和 MS Office 版本最 recent version 兼容的。并在 64 位架构上尝试 运行ning。
- 无法映射到 JET/ACE 数据类型的复杂或大型 Oracle 数据类型,例如高精度数字类型或大型二进制对象类型。看到这个 Oracle doc.
- 臃肿的 Access 应用应该是 compacted and even decompiled。
- 没有 split architecture 的数据库,其中应用程序对象(查询、表单、报告、宏、模块)与 tables 分离。
make table是访问本地吗?
我的意思是狗和公共汽车在这里是两种截然不同的东西。
make table 是 oracle 本地的,还是您正在考虑将 PT 查询用作 Access 中的 LOCAL table 的 make table?因此,您的比较是珠穆朗玛峰的不同之处。
我怀疑如果目标 table 是 "local",则链接 table 到 Oracle 的平面 jane 与 PT 查询的平面 jane 可能会执行相同的操作。那是因为你将整个 table 拉下网络管道到本地 table.
如果 PT 查询是 table 100% 到 Oracle 服务器上的另一个 table?那么 PT 查询的执行速度应该与您在 Oracle 控制台中键入该命令一样快 - 应该没有区别。
你没有提到行数
(编辑 - 我看到你只注意到 16,000 行 - 这是相当小的)。
所以问题是网络连接。这是 LAN(局域网),还是您使用的是 VPN 和互联网,速度会慢大约 100 倍。我的意思是,比典型 LAN 慢 100 倍的连接将慢 100 倍 - 这并不奇怪。
因此,有关正在使用的连接类型和行数的详细信息将在此处提供重要信息。但是,如果此处涉及 VPN 和互联网连接,那么此类连接的速度将比超便宜的办公室局域网慢 50 倍。
您可以阅读我的这篇解释此速度问题的文章:
http://www.kallal.ca//Wan/Wans.html
我不明白为什么 16,000 行会花费这么长时间 - 在最便宜的办公网络上这将花费不到一秒钟的时间。使用任何其他客户端提取该数据不应 运行 或比 PT 查询工作得更快。我的意思是,ado.net、ODBC 或 oleDB 不会导致服务器说,嗯,哎呀——让我们发送数据更慢。所有这些客户端都应以相同的速率提取数据。
你的问题访问专家在那里:
我有一个 Oracle 传递查询,它在 Access 程序中 returns 在大约 2 秒 后设置了结果。但是,当我尝试在 make-table 查询中使用该传递查询时,它拖了大约 7 分钟。 (该文件当前位于我的桌面上,所有 table 都是本地的(未链接))。
为了提高性能,我创建了 delete/append 查询,并使用 VBA 创建了 运行 查询。然后我尝试使用显式字符串 SQL 查询的 DAO db.Execute,引用传递查询 (INSERT/SELECT)。所有方法都非常慢!我想让它接近实际的 运行 传递时间(同样是 2 秒)。
有什么见解吗?
make-table 和传递查询之间可能没有实际的大性能差异。查询实际上需要几分钟才能达到 运行,而您可以在几秒钟内查看一些结果。向下滚动查询 window 可能会显示查询仍在呈现。
因为直通查询与 ODBC driver/OLEDB 提供程序接口以跨网络、多个环境或在客户端(即 MS Access)和数据库(即 Oracle)之间解析 SQL 语句软件原因可能是一个因素。
- 客户端计算机和服务器之间的网络流量。避免 WAN for hard-wired LAN 连接。切勿使用 Internet 文件夹或 运行 访问闪存驱动器或有限磁盘驱动器 space。
- ODBC driver/OLEDB 提供程序可能已过时。尝试找到与您的 Oracle 版本和 MS Office 版本最 recent version 兼容的。并在 64 位架构上尝试 运行ning。
- 无法映射到 JET/ACE 数据类型的复杂或大型 Oracle 数据类型,例如高精度数字类型或大型二进制对象类型。看到这个 Oracle doc.
- 臃肿的 Access 应用应该是 compacted and even decompiled。
- 没有 split architecture 的数据库,其中应用程序对象(查询、表单、报告、宏、模块)与 tables 分离。
make table是访问本地吗? 我的意思是狗和公共汽车在这里是两种截然不同的东西。
make table 是 oracle 本地的,还是您正在考虑将 PT 查询用作 Access 中的 LOCAL table 的 make table?因此,您的比较是珠穆朗玛峰的不同之处。
我怀疑如果目标 table 是 "local",则链接 table 到 Oracle 的平面 jane 与 PT 查询的平面 jane 可能会执行相同的操作。那是因为你将整个 table 拉下网络管道到本地 table.
如果 PT 查询是 table 100% 到 Oracle 服务器上的另一个 table?那么 PT 查询的执行速度应该与您在 Oracle 控制台中键入该命令一样快 - 应该没有区别。
你没有提到行数 (编辑 - 我看到你只注意到 16,000 行 - 这是相当小的)。 所以问题是网络连接。这是 LAN(局域网),还是您使用的是 VPN 和互联网,速度会慢大约 100 倍。我的意思是,比典型 LAN 慢 100 倍的连接将慢 100 倍 - 这并不奇怪。
因此,有关正在使用的连接类型和行数的详细信息将在此处提供重要信息。但是,如果此处涉及 VPN 和互联网连接,那么此类连接的速度将比超便宜的办公室局域网慢 50 倍。 您可以阅读我的这篇解释此速度问题的文章: http://www.kallal.ca//Wan/Wans.html
我不明白为什么 16,000 行会花费这么长时间 - 在最便宜的办公网络上这将花费不到一秒钟的时间。使用任何其他客户端提取该数据不应 运行 或比 PT 查询工作得更快。我的意思是,ado.net、ODBC 或 oleDB 不会导致服务器说,嗯,哎呀——让我们发送数据更慢。所有这些客户端都应以相同的速率提取数据。