我想创建一个用于记录测试结果的小型数据库。在正常情况下,Access足够容易,但我不知道它是否支持并发连接 - 在2007年之前的旧版本中,我确信它过去非常有限。
预期使用可能是10台连接到数据库的网络电脑,每台网络电脑每秒进行一次查询 - 这可能是夸大其词。这是否在ACCDB数据库的合理能力范围内?
答案 0 :(得分:1)
此处列出了by Microsoft a long time ago和Here for Access 2010 Explicitly
的一些信息我也听到/看到过这个地方 - "根据微软的说法:每个进程最多64个连接,每个数据库限制256个并发打开读/写连接。",但我找不到来源。
当你说"每个人每隔一个查询一次" ..我假设这些是SELECT
陈述?或UPDATE
陈述,或两者兼而有之?
您正在描述的体系结构产生了这样的想法:拥有一个Back End数据库,该数据库存储所有带有数据的表,以及多个Front Ends(由用户分发和使用),这些表连接了这些表,并且#39 ; s用户如何与他们互动。如果没有采用这种架构 - 会出现问题,但不仅限于:腐败,记录锁定以及由于所有并发更新而导致的数据不匹配。
答案 1 :(得分:-1)
如果您尝试使用具有相当复杂应用程序的2个并发用户(如pos软件),这需要在一个例程中读取,插入,更新几次,您将收到错误提示,例如数据库被另一个用户锁定。
在这种并发的用户压力下,程序显着减慢;否则我认为msaccess很棒。
MS声称msaccess能够支持众多并发用户,这使得许多程序员在编写共享msaccess数据库时花费了无数的时间,却发现它只是一个大谎言。
Access 7和Win 8上的另一个问题是,它有时可能会严重挂起程序,并且Microsoft支持无法解决问题,直到一位出色的用户在线发布了注册表调整解决方案。
某些版本的Windows 7和Windows 7中的另一个严重错误8如果您的数据库存储在程序文件或程序文件(x86)下的应用程序目录中,则最终可能会在使用后数天甚至数月后将记录恢复为原始数据。这对于程序员和最终用户来说都是难以置信的经历。几天,几周甚至几个月的数据完全消失了。我在网上看过这个世界末日的经历。因此,您必须确保将数据库移动到另一个位置。微软希望每个人都知道这一点,或者你为此付出了沉重的代价。非常负责任的公司,你知道。
当然你可以去找mssql然后再次被警告有'-2147217871 ODBC服务器超时'错误超过十年不仅会挂起应用程序而是电脑几分钟如此彻底,似乎一切都停止了。如果你的程序像需要多次读取和插入和更新的pos软件一样复杂,就会发生这种情况。
微软在其网站之一 - http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlcommand.commandtimeout.aspx#Y0已经确认 - 作为MsSql中的一个尚未解决的错误。然而,该页面内容现在已经改变,可能对MS来说太尴尬了。 MS支持人员曾在那里写道:“我们将来会研究这个漏洞。”多好啊。
许多企业都依赖于Access数据库,但事情进展顺利,有人会更好地提供兼容的数据库而无需在程序端进行代码更改。编程社区非常需要这一点。
我花了10年的时间用msaccess和mssql编写了一个pos软件,而这只是一次又一次被微软搞砸了。即使对我来说,这样一个成熟的公司也会对msaccess和mssql数据库这样的关键产品如此草率和不负责任感到惊讶。
现在我只为单个用户使用msaccess数据库。正如一位知识渊博的开发人员曾写道:“msaccess的并发用户数实际上是1,重复一次。”周期。