这是解决与较大.mdb
个文件相关的问题的现实解决方案:
.mdb
文件拆分为
较小的.mdb
个文件.mdb
包含
链接到较小的表格
.mdb
个文件对.mdb
支持的VB应用程序进行此更改有多容易?
是否可以对数据库进行更改,以便前端应用程序不需要进行任何更改?
答案 0 :(得分:4)
编辑开始
简短的回答是“不,它不会解决大型数据库的问题。”
您可以通过使用此技巧克服数据库大小限制(~2GB),但我从未测试过它。
通常,对于大型MS Access数据库,您会遇到速度和数据损坏问题。
速度
这对速度有帮助吗?您仍然拥有相同数量的数据来查询和搜索,以及相同的算法。所以你要做的就是增加每个查询打开多个文件的开销。所以我希望它会慢一些。
您可以通过减少从磁盘中获取信息所需的时间来加快速度。您可以通过以下几种方式实现此目的:
(这在实践与理论上的效果如何,我不能告诉你 - 如果我做了那么多工作,我仍然会选择切换数据库引擎)
数据损坏
MS Access在数据损坏方面享有当之无愧的声誉。公平地说,我有一段时间没有发生过这件事。这可能是因为我学会了不要把它用于任何大事;或者可能是因为MS在尝试解决这些问题方面付出了很多努力;或者更可能是两者的结合。
数据损坏的主要原因是:
所有这些都因较大的数据库而恶化,因为较大的数据库通常拥有更多的用户和更多的工作站来访问它。总而言之,较大的数据库和用户数量相乘,以便为腐败提供更多机会。
修改结束
您最好的选择是切换到MS SQL Server之类的东西。您可以首先迁移数据,然后将一个MDB链接到它。您可以获得SQL服务器的稳定性,并且大多数(如果不是所有)代码仍然有效。
完成后,您可以开始将VB应用程序迁移到我们的SQL Server。
答案 1 :(得分:2)
如果您拥有的数据多于单个MDB中的数据,那么您应该获得不同的数据库引擎。
您应该考虑的一个主要问题是您无法在存储在不同MDB中的表之间强制实施参照完整性。这应该是任何实际数据库的显示阻止。
如果不是,那么您可能首先没有设计合适的架构。
答案 2 :(得分:1)
由于CodeSlave更充分解释的原因,答案是否,您应该切换到适当的关系数据库。
我想补充一点,这不一定是SQL Server。很可能你不愿意这样做的原因之一就是费用,如果你不在教育或慈善组织(当它非常便宜,然后通常是完全没脑子的话),获取和部署SQL Server是相当昂贵的。
我最近将Access系统从MDB迁移到MySQL的效果非常好。至少有95%的代码在没有修改的情况下运行,其余5%的代码最简单,只有少数几个需要付出巨大努力的有限区域。如果你有邋code的代码(没有关闭连接或释放对象),那么你需要解决这些问题,但通常我非常惊讶这种方法是多么无痛。当然,我强烈建议,如果您不愿意转移到数据库后端的原因是成本之一,那么您不应该尝试操作.mdb文件而是转而使用更强大的数据库解决方案。
答案 3 :(得分:0)
嗯,如果数据通过这个中央数据库,那么仍然会有一个瓶颈。我能想到你为什么要这样做的唯一原因是绕过访问mdb文件的大小限制。
如果业务功能可以在单独的应用程序中拆分,那么对于包含所有链接表的中央数据库来说,这可能是一个很好的选择,以便进行报告。我之前使用过这个效果很好