我有多组代码需要在Access 2007中运行,我一直在尝试同时运行它们是否可以接受。运行Access VBA代码所需的每组数据大约需要5-8个小时来运行。一次运行两个或全部运行会导致任何问题吗?
它们每个都是自包含的,没有提取任何外部信息,因此尝试同时访问相同的外部信息不会有问题。
编辑:
每个Access程序将在VBA中运行代码,该代码实质上将存储的设备(MIU)的纬度和经度位置与一组网格点进行比较,并将所述网格中的所有MIU分组到新表中。网格在此过程后移动并重复,直到达到整个搜索网格的最大纬度和经度。
发布于 2009-07-14 14:53:56
这真的是一个“谁知道呢?”问题类型。如果5-8小时的进程消耗了大部分CPU周期或大部分RAM,那么在机器上运行两个进程不会提高速度;实际上,由于任务切换的原因,它会降低速度。
如果这些进程确实是独立的,那么您可以考虑让多台机器在不同的数据库副本上工作。这样你就可以向外扩展了。
当然,我不确定这个过程是做什么的,所以很难说这是否可行。
发布于 2009-07-14 23:58:36
很多人都知道,我是Access的主要推动者。在这种情况下,在我看来,Access可能不是正确的工具。
但我假设您已经以最合理的方式在Access中实现了您的进程。例如,如果您可以用SQL Update代替遍历记录集和更新每行中的一个或多个字段,那么效率可能会大大提高。
需要考虑的一件事是,许多人经常遍历一组记录进行更新,而他们可能会垂直地对问题进行切片,并发出有限数量的SQL语句(每列一条)。例如,当您试图在两个都已更新的无序表之间同步数据时就是这样。与逐行遍历和逐字段更新相比,逐列编写动态SQL更新要高效得多。
这样的重新设计带来的性能提升可以超过一个数量级。
发布于 2009-07-14 14:50:48
如果你指的是两个不同的实例 of Access,那么这将更多地取决于你正在做什么以及计算机的容量(内存和处理器速度,处理器的数量)。
我发现如果我导入大量数据并将焦点从access上移开,当我试图切换回来时,应用程序可能会停止响应。
您可以随时尝试使用测试运行...
当我有一个大型作业要运行时,我会在我们的Citrix服务器上运行它。
运行进度表是个好主意,这样您就可以检查进度了。
https://stackoverflow.com/questions/1125762
复制相似问题