0

我必须创建一个Access 2003数据库并在100个用户中共享它,用户不会做任何修改,只会查看几个使用计划任务每​​天(和一次)生成的报告主机。Shared Access 2003数据库性能

同时有100个用户会在这种情况下打破表演吗?

您对此工作流程有何建议?

排除:

  • 使用的数据库服务器(SQLSERVER,...等)是出题目的
  • 我已经想过输出报告到静态html,但现在我想先评估整个数据库的共享(因为可能需要过滤功能)
  • 我想避免复制

回答

1

你已经使用了“主机”这个词。请记住,Access不是一个真正的客户端 - 服务器引擎:它仅仅提供对数据的访问;消费者将数据下拉到本地机器,在本地机器上,其本地Access运行时或本地Access开发版本针对下载的数据执行查询。整个“货运列车”的数据可以通过电线传送到桌面。

几年前,我们有一个庞大的数据库,客户在Access中需要(最终将其移至Oracle)。某些查询会在15-30秒内耗尽可用局域网带宽的90%-100%,在此期间,局域网上完全不同数据库的其他写入操作将超时,并导致数据损坏。

因此,您的方案的主要关注点是其他应用程序可能会严重降级的影响。这将取决于数据库的大小以及报告背后的查询性质。

如果可以的话,我建议“报告”报告,以便报告的每次运行都不会调用实例化后面的数据的查询。

编辑:另外,如果有必要,将有一个Web服务器在同一台计算机上运行的访问“主持人”执行查询,并服务于最终结果报告出来到消费者浏览器作为HTML。这将减少带宽消耗。局域网成为“云”。

+0

你好。实际上,我使用** host **这个词来指代共享数据库访问的中央机器。我还决定每天收集新数据后立即将报表查询结果存储到表中,而不是实际创建报表。然后,当用户将运行一个报告时,它将建立在此表的顶部,因此唯一执行的查询将是过滤器(基于用户输入);这个查询很简单,看起来像这样: SELECT * FROM T其中X = B和A = Z AND(R在10和1010100之间)AND SS> TT ...等等你认为如何? – CoolStraw 2011-02-24 12:55:15

+0

如果您将查询结果插入到新表中,以便报告基于数据的一小部分静态子集,那么您可以按照我的建议“制作”它们。那很好。但是SQL语句的表面简单并不重要;它是必须通过电线的字节数。带宽消耗将取决于报告背后的静态表的大小。 – Tim 2011-02-24 13:02:10

+0

我明白了,然后我会试着弄清楚网络负载的样子,并尝试设置它。非常感谢你,非常好的一点! – CoolStraw 2011-02-24 13:41:40

1

如果你给每个用户自己的前端的副本,并链接到TH e数据源,那么如果网络达到临界水平,您可能会失去100个用户。我有大约100个用户只能访问DB大多读,但他们是不是所有使用它的同时

您可以使用优秀autoFE更新 www.autofeupdater.com/自动化前端安装

+0

感谢您的提示。我尽管不能使用任何第三方软件,所以autofe超出了范围。 – CoolStraw 2011-02-24 12:29:29

+0

在我了解AutoFE之前,我使用位于网络驱动器上的小型引导程序访问数据库“滚动”自己的“滚动”。当用户打开这个数据库时,它会检查他们的计算机是否有真正的前端,如果他们没有安装并启动它。如果他们这样做,则检查它是否是最新的并在版本号小于服务器上的版本号时更新它。所有这些只使用访问数据库,没有第三方工具 – 2011-02-24 13:02:44

+0

是的,但是我实际上并不知道现在是否真的需要这个,因为我会做一个版本然后部署它,就是这样,但我会记住这一点。非常感谢你 – CoolStraw 2011-02-24 13:36:35