如果我在网络位置上有Microsoft Access 2007数据库,那么可以使用该数据库的客户端计算机的数量是否有限制?客户端将不会安装Access,而是使用Access Runtime 2007。
如果我从后端拆分前端而不是直接通过网络直接访问文件的每个人,是否会更改最大连接数?
我知道这里描述的方法并不理想。我不会这样设计它,但我必须支持它。了解当前设计可以采取多少措施的部分原因是知道它可以处理多少并发连接。感谢任何信息!
答案 0 :(得分:7)
Jet / ACE具有255个连接的硬连线限制。
但在现实生活中,你永远不会接近这一点。
有多少用户可以同时共享您的数据取决于他们正在做什么。如果您有许多只读用户,那么您将能够支持更多的并发用户,而不是每个人都在不断添加/编辑。
对于一个主要是只读和一些编辑器的应用程序,你可以很容易地同时获得100个用户,但是编辑用户越多,你就越少能够在不跳过篮球的情况下进行管理。
对我而言,实际限制在15-25范围内。这就是我开始升级到服务器后端的过程。并不是说你不能做得更好,只是为了支持更多的并发用户,你必须非常小心地与数据交互,你可能需要转到未绑定的数据编辑表单。完成后,您已经放弃了Access前端75%的优势。
至于“分裂”问题,并不是因为有多少同时发生的用户,如果你不拆分,这只是一个根本不工作的问题。需要拆分具有多个用户的任何Access应用程序。没有例外。
这样,服务器上就有一个后端数据文件,由所有用户共享,所有用户在其工作站上都有前端应用程序的单独副本,链接表指向存储在文件服务器上的共享后端
关于连接,不要担心。具有Jet / ACE后端的Access应用程序更多是用户问题,因为您将使用单个持久连接。试图管理连接,打开和关闭它们会起反作用,因为它会完全不必要地对文件共享机制征税。也就是说,你实际上并没有获得任何容量,但最终会占用大量的CPU周期和带宽而没有用处。
当然,这是与客户端/服务器编程实践相比的异端建议,但是具有Jet / ACE后端的Access应用程序不是客户端/服务器,因此您不应该担心这一点。
答案 1 :(得分:2)
性能不是问题。问题是Access不喜欢将同一MDB / ACCDB中的表单,报告和模块共享给多个用户。这可能会导致Access数据库文件中的损坏和其他奇怪的问题。解决这些问题意味着每个人都必须退出数据库。此外,当用户在数据库中时,开发人员将无法处理这些对象。此外,我更喜欢用户获得MDE / ACCDE,因此他们不会想要捣乱。
有关详细信息,请参阅“Splitting your app into a front end and back end Tips"。另请参阅免费基本使用Auto FE Updater实用程序,以使新FE的分发相对轻松。该实用程序还非常好地支持终端服务器/ Citrix。
答案 2 :(得分:1)
答案 3 :(得分:0)
我不知道技术限制,但实际限制是大约5到10个并发用户。当然,这在很大程度上取决于使用模型,即写入的数据量,同时读写的数量等等。
我绝对建议在任何情况下拆分数据库和客户端,并且觉得它增加了系统的稳定性。