Access将支持35-40个用户写入Access数据库

时间:2009-06-12 15:46:02

标签: ms-access

我们希望有大约35-40人通过共享驱动器上的脚本写入访问数据库。这些指标分解为他们需要每小时写3-7次。 Access会支持这种情况而不会惹恼我。

是的我希望将它用作SQL服务器,但这意味着要经历大量的繁文缛节/会议文书工作等我不想打扰

8 个答案:

答案 0 :(得分:8)

你能否在没有繁文缛节的情况下使用免费版本的SQL Server Express?

在回答你的问题时,我看到Access在拥有这么多用户的环境中给出了很大的问题,尽管那是在2007年之前。我不知道它有多大改变。

如果是我,我会不惜一切代价避免使用。

答案 1 :(得分:6)

是的吗?是。如果你非常小心并执行锁定并确保没有人踩到任何其他人。访问真的不是为任何形式的并发而设计的。我知道有一个地方设法使它在一个非常并发的环境中工作,但是这个环境基本上记录了所有内容,如果数据库破坏了自己,它将从上次备份恢复并自动重放Access文件,以便失败是透明的。我不建议采取这种行动......

你应该这样做吗?不。是否有任何理由不能使用PostgreSQLMySQL

答案 2 :(得分:2)

是的,它会起作用。不,这不是一个好主意。

访问将能够处理负载,只要那些35-40人并非都在尝试一次访问数据库。当您开始拥有多个并发用户时,它会很快陷入困境,特别是如果这些用户都在尝试更新某些内容。

问题在于并非不安全。您需要在网络共享上访问整个数据库文件,任何用户都可以在其中写入。您将有多个Access实例同时尝试读取和修改文件,除非您非常小心锁定,否则数据库很可能会损坏或损坏。

您也永远无法在基本文件权限之外添加任何类型的访问控制。您现在可能不需要它,但内部数据库通常最终需要以某种方式暴露给更广阔的世界。

这不值得。有很多真正的RDBMS系统,免费提供,旨在处理这类事情。为什么要花时间尝试使Access在这样的环境中工作,何时可以安装SQL Server Express并完成它?它有局限性,但如果你正在认真考虑Access,那么你永远不会在那些附近。或者使用MySQL,PostgreSQL,Firebird ......

答案 3 :(得分:1)

这是不确定的。数据库第一次崩溃,你希望你使用SQL Server Express。它最终会崩溃。

在我以前的工作中,我们有一个带有Access数据库后端的产品。我们有一些客户有25个用户。我们拒绝拥有40个潜在用户的客户,因为我们从经验中知道数据库会定期损坏自己,并且性能是不可接受的。

当我们使用SQL Server Express时,应用程序的性能翻了一番,崩溃和损坏的问题几乎消失了。

答案 4 :(得分:1)

我也会避免访问。你有没有想过sql ce。它应该更好地处理多个用户,它就像访问文件一样。

答案 5 :(得分:1)

7 * 40 =每小时280次。

280/60 =每分钟4,6。

如果您的脚本很轻,如果您不经常阅读结果,可能...... 当然我不建议你试试。会议时间! ;)

答案 6 :(得分:1)

如果仅在运行脚本所需的时间打开连接,并且在发生冲突时使用事务并且内置了一些重试逻辑,那么确实不应该有太多问题。

如果您的脚本需要1秒钟来进行更新(当然,这在计算机/数据库术语上相当长),并且每小时有280次更新,如果您足够幸运,没有两个用户同时运行他们的脚本,当数据库未打开时,你仍然会有3,320秒。

我没有看到问题,假设您知道如何正确管理您的连接并管理您的Jet交易。

答案 7 :(得分:1)

只要在稳定的LAN或非常高速的WAN上,该卷对Access来说不是问题。无线连接也是一个坏主意。

我有几个客户每年在系统中添加大约200K到300K的交易。所以每个工作日大约1000个。那是使用Access前端和后端。

据说其中一个将很快升级到SQL Server。当他们雇用PHB(迪尔伯特的尖头发老板)时,我解雇了另一个客户。