我的一位客户在加载数据库时报告其计算机出现故障。这个数据库是这个24/7非营利机构的申请。由于在计算机上检查了其他所有内容,我查看了数据库文件。是存储在网络共享上的Access 2000; 1个档案;只有1 GB以下的阴影。难怪这台计算机加载它需要这么长时间(它是最老的计算机,只有10Mbps网卡)。
这个数据库很复杂,可能充满了宏和代码,使其正常工作,但我不确定它是如何组合在一起的,如果我尝试的话,我不确定我是否可以重新创建它。我不是一个数据库人,但可以做一些简单的事情。
那说:我可以做一件简单的事情让这个数据库工作得更好吗?用户主要是社交工作者,他们需要“单击此按钮,一切都将与以前一样”类型解决方案。也就是说,如果该按钮打开了Internet Explorer而不是Access,那么他们就可以了。
他们有一台Windows 2008服务器。我是该机构的合同技术人员,可以向服务器添加任何服务以使其工作 - 当然要经过预算审批。数据库正在成为一个问题,一个简单的解决方案可能比雇用数据库大师从头开始重建它要便宜得多。
虽然Access数据库是2000格式,但工作站都运行Access 2007,因此在执行任何其他操作之前升级到2007是一个选项。当然,在尝试任何事情之前,我会做备份。
打电话给写这篇文章的人不是首发。现在没有人知道最初是谁做的。
编辑添加:任何时候最多可以有6或7个人使用该数据库。并非所有主动,但它将在工作站上打开并最小化
答案 0 :(得分:2)
为了进一步提出关于这是一个数据库系统的建议,工作和修改Access数据库所需的学习曲线与基于vb.net或SQL服务器的应用程序没有任何不同。如果要进行性能调整Oracle系统,那么您将需要具有优于Oracle平均技能的人员。这种想法也适用于Access或vb.net应用程序。
在很多方面,我发现Access FAR的学习曲线比使用VS和.net更陡峭。特别是在需要额外性能的情况下。
Access需要多种技能,从编码到数据库设计技能,以调整性能。不要被愚弄,因为这是Access。更糟糕的是,你在谈论绩效转变,所以现在你在谈论高端技能。
你最好找到一个真正的Access专业人士,因为那个人可以在几个小时内完成你需要几周学习的时间。
如果有一个简单的魔术子弹解决方案,它可能已经完成了。
在大多数情况下,如果某个应用程序很有价值,那么这意味着它可能是由具有至少一些良好能力水平的人创建的。所以这表明这个应用程序可能在这里有一些很好的价值和设计。
但是,您可以查看所有Access开发人员习惯的一些基本清单。第一个当然是拆分数据库(请注意,这通常不会加速应用程序,但它会提高稳定性和可靠性)。如果应用程序没有拆分,那么通常这表明构建器不是最佳的。
接下来是应用程序拆分的一些基本的其他提示:
始终向用户部署程序的编译版本。
如果有多个用户 - 请检查+确保后端保持持久连接。
关闭曲目名称自动更正。
以上步骤以及要检查的事项列表如下:
http://www.granite.ab.ca/access/performancefaq.htm
以上是需要检查的确定清单,无需以任何实际材料方式修改应用程序。
然而,在一天结束时,最好的办法是让有人具备胜任的入门技能。如果他们没有这方面的预算,那么也许你会发现有人愿意为他们的一些时间做志愿者。 (毕竟,这就是我们在这里所做的事情。)
正如我所指出的,如果你有一个.net或者说基于oracle的解决方案,那么Access通常需要更多的关爱,并且在很多方面都很宽容。
虽然我给出了建议方法列表的链接,但您确实需要谨慎行事并弄乱复杂的应用程序 - 此类应用程序需要更加谨慎,因为它更容易破坏或损坏某些内容。
然而,请务必尝试上面列出的事情 - 这是一个非常好的列表。
如果您使用10baseT,那么跳到100BaseT将会有很大帮助。事实上,我看到10baseT连接已经多年了? (你确定吗?)。
我的意思是,他们拥有2008服务器(价格昂贵),他们拥有Access 2007,再次相当近期,但他们究竟如何使用10baseT网卡?我的意思是,100baseT网卡的10美元是多少?我肯定会摆脱瓶颈。
答案 1 :(得分:0)
谢谢你们。压缩数据库后,加载数据库的性能要好得多。虽然我不会自己重做数据库,但至少我的客户可以阻止(合理的)抱怨它在工作站上的加载速度,甚至10BaseT恐龙(NIC是我之前的替换卡,他们的旧显然,人们知道使用一堆旧零件。)
我们稍后会考虑拆分数据库,但是他们知道这是一个“安全”功能,而不是性能功能。
感谢您对此提供的所有帮助。