我的一位客户报告说,他们的一台计算机在加载数据库时出现卡住问题。该数据库是该 24/7 非营利机构的应用程序。由于其他所有内容都在计算机上检查完毕,因此我查看了数据库文件。是存储在网络共享上的 Access 2000; 1 个文件;大小仅略低于 1 GB。难怪这台电脑加载时间这么长(它是最旧的电脑,只有 10Mbps 网卡)。
这个数据库很复杂,可能充满了使其正常工作的宏和代码,但我不确定它是如何组合在一起的,而且我不确定如果我尝试的话是否可以重新创建它。我不是数据库专家,但可以做一些简单的事情。
也就是说:我可以做一件简单的事情让这个数据库更好地工作吗?用户主要是社会 worker ,他们需要“单击此按钮,一切都会像以前一样”类型的解决方案。也就是说,如果该按钮打开 Internet Explorer 而不是 Access,他们会同意。
他们有一个 Windows 2008 服务器。我是该机构的契约(Contract)技术人员,可以向服务器添加任何服务以使其正常工作 - 当然需要预算批准。数据库正在成为一个问题,一个简单的解决方案可能比聘请数据库专家从头开始重建它要便宜得多。
虽然 Access 数据库是 2000 格式,但工作站都运行 Access 2007,因此在执行其他操作之前升级到 2007 是一种选择。当然,我会在尝试任何操作之前进行备份。
给写这句话的人打电话是不可能的。现在这里没有人知道最初是谁干的。
编辑添加:任何时候最多大约有 6 或 7 人可以使用数据库。并非全部都是主动的,但它会在他们的工作站上打开并最小化
请您参考如下方法:
为了进一步对此数据库系统提出建议,工作和修改 Access 数据库所需的学习曲线与基于 vb.net 或 SQL Server 的应用程序没有任何不同。如果您要调整 Oracle 系统的性能,您将需要具有高于平均 Oracle 技能的人员。这种想法也适用于 Access 或 vb.net 应用程序。
在很多方面我发现 Access 的学习曲线比使用 VS 和 .net 更陡峭。尤其是在需要额外性能的情况下。
Access 需要多种技能,从编码到数据库设计技能,以调整性能。不要在这里被愚弄,因为这是 Access。更糟糕的是,您正在谈论绩效转变,所以现在您在这里谈论更高端的技能。
您最好找到一位真正的 Access 专家,因为他可以在几个小时内完成您需要数周才能学习的内容。
如果有一个简单的 Elixir 解决方案,它可能已经完成了。
在大多数情况下,当一个应用程序有值(value)时,就意味着它可能是由至少具有一定水平能力的人创建的。因此,这表明该应用程序可能具有一些良好的值(value)和设计。
但是,您可以查看所有 Access 开发人员都习惯的一些基本 list 。第一个当然是拆分数据库(注意,这通常不会加快应用程序的速度,但会增加稳定性和可靠性)。如果应用程序没有拆分,那么通常这表明构建器不是最佳的。
既然应用程序已拆分,接下来是一些基本的其他提示:
始终向用户部署程序的编译版本。
如果有多个用户 - 检查并确保与后端保持持久连接。
关闭轨道名称自动更正。
上述步骤以及要检查的事项列表如下:
http://www.granite.ab.ca/access/performancefaq.htm
以上是要检查的事项的最终列表,而无需以任何实际的实质性方式修改应用程序。
但是,归根结底,您最好的选择是聘请具有胜任 Access 技能的人员。如果他们没有这方面的预算,那么也许你会找到愿意贡献一些时间的人。 (毕竟,这就是我们在这里所做的)。
正如我所指出的,与拥有 .net 或基于 Oracle 的解决方案相比,Access 通常需要更多的关爱,并且在很多方面都不那么宽容。
虽然我提供了建议方法列表的链接,但您确实需要谨慎地探索和弄乱复杂的应用程序 - 此类应用程序需要更加小心,因为它更容易破坏或损坏某些东西。
但是,请看一下上面列出的要尝试的事情 - 这是一个非常好的列表。
如果您使用的是 10baseT,那么跳到 100BaseT 将有很大帮助。事实上,我已经很多年没有见过 10baseT 连接了? (你确定吗?)。
我的意思是,他们有 2008 年的服务器(价格昂贵),他们有 Access 2007,同样是最近的,但他们到底是如何使用 10baseT 网卡的?我的意思是,一张 100baseT NIC 卡要花 10 美元多少钱?我肯定会摆脱这个瓶颈。