有多少用户可以打开到 Microsoft Access 的连接?

Posted

技术标签:

【中文标题】有多少用户可以打开到 Microsoft Access 的连接?【英文标题】:how many users can open a connection to Microsoft Access? 【发布时间】:2011-03-20 09:26:20 【问题描述】:

有多少用户可以同时打开与 Microsoft Access 数据库的连接? 我正在使用 asp.net 4.0 编写我的应用程序。

<add name="E_ShopAccessConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|\report.mdb;Persist Security Info=True" providerName="System.Data.OleDb"/>

【问题讨论】:

【参考方案1】:

Access 数据库的连接数限制为 256 个,但数据库驱动程序中每个进程的连接数限制为 64 个,并且由于 IIS 是单个进程,因此您的限制是 64 个。

如果您小心地正确关闭连接、命令和数据读取器,这通常足以满足大量用户的需求。每个访问者都不需要自己的连接。

在连接用完之前,您可能会遇到其他限制。如果你有很多访问者,你会发现Access数据库根本不够快,你需要一个更高级的数据库系统。

如果您的连接用完了,那很可能是因为您没有正确关闭数据库对象,因此它们仍然保持数据库连接处于活动状态,直到它们被垃圾回收。

【讨论】:

Jet/ACE 的限制实际上是 255 个同时用户,这可能会或可能不会直接映射到您认为自己拥有的连接数。但这是一个理论上的限制——没有人会超过实际理论限制的 50%。不过,总的来说,我会说 Jet/ACE 首先不是适合 Web 服务器应用程序的数据存储。【参考方案2】:

根据 Microsoft:每个进程最多 64 个连接,限制为 每个数据库 256 个并发打开读/写连接

但根据我的经验,20 个连接 性能会显着下降。

【讨论】:

【参考方案3】:

如果您从 ASP.NET 使用 MS Access,则该站点在单个用户的上下文中运行,因此应该不会有太多问题。

[大多数人不同意,但我曾在一个相当高的事务站点上使用带有 ASP 和 ASP.NET 的 MS Access 的经验,它运行良好,确保数据库是最新版本的 MS Access]

我会考虑使用 SQL Server Express 作为替代方案。

【讨论】:

【参考方案4】:

不够。

取决于版本,您可以拥有 5 到 10 个,但对于“每个用户的工作量大”来说,确实是

从技术上讲,它可以变得更高,但在尝试恢复文件时遇到了一些糟糕的经历。一般来说,我们建议平均 > 5 应该转移到像 SQL Server 这样的后端,前端使用 MS Access 映射。

【讨论】:

对于 ASP.Net 实现来说,少于三个可能是正确的,但对于常规 Access 前端后端实现来说却是相当低的。我至少有 10 个人在做相当稳定的数据输入,另外 15 个人在做杂项工作和报告。

以上是关于有多少用户可以打开到 Microsoft Access 的连接?的主要内容,如果未能解决你的问题,请参考以下文章

无法通过 C# 中的 OleDB 从 Microsoft Access 中删除表的所有行

我可以在 ADB2C 中创建多少用户?

ASP NET API - 在不打开 Microsoft 登录页面的情况下使用 Azure AD SAML 协议对用户进行身份验证

Microsoft office Word 2013版本操作入门_段落设定

Microsoft Access 中有没有一种方法可以从具有复合主键的 Excel 文件中导入?

一座基站能同时支撑多少人一起打电话?通常是多少