我们希望有大约35-40人通过共享驱动器上的脚本写入访问数据库。这些指标分解为他们需要每小时写3-7次。 Access会支持这种情况而不会惹恼我。
是的我希望将它用作SQL服务器,但这意味着要经历大量的繁文缛节/会议文书工作等我不想打扰
答案 0 :(得分:8)
你能否在没有繁文缛节的情况下使用免费版本的SQL Server Express?
在回答你的问题时,我看到Access在拥有这么多用户的环境中给出了很大的问题,尽管那是在2007年之前。我不知道它有多大改变。
如果是我,我会不惜一切代价避免使用。
答案 1 :(得分:6)
你应该这样做吗?不。是否有任何理由不能使用PostgreSQL或MySQL?
答案 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(迪尔伯特的尖头发老板)时,我解雇了另一个客户。