2013-04-05 56 views
1

介绍的最佳方式:什么是防止Access数据库臃肿

我创建将与多用户功能来推出了Access数据库系统。 但是,因为我在Access 2000中创建了这个数据库(我知道老派),当我的数据库通过40-60MB时,会出现很多错误和随机的神秘问题。

我的问题:

有没有人得到了很好的解决了我怎么能缩小下来或防止膨胀?

详情:

我使用的许多当地表与SQL表和我的前端链接到一个后端的SQL Server相结合。 我已经尝试过紧凑和修复,但它只能缩小到15MB左右,用户使用数据库几次后,膨胀迅速扩大到50-60MB!

让我知道是否需要更多细节,但这是我的问题的粗略轮廓。

非常感谢!

+1

您*确实知道Microsoft在3.5年前停止支持Office 2000产品,对吧?如果您遇到“bug和随机神秘问题”的问题,那么继续使用过时的软件可能不是最好的选择。 – 2013-04-05 10:42:57

+1

您是否尝试升级到较新版本的Access?我仍然使用1993年第一次在Access 1.0中编码的应用程序。我将它升级到新的办公版本,因此它们很少会破坏任何东西。如果某件事情崩溃了,修复它通常很容易。购买新的Access许可证可能比大型Access 2000数据库所需的所有维护和维护要便宜。 – 2013-04-05 11:37:25

+0

谢谢你的回复!我完全同意你们两人的看法,认为升级肯定是前进的方向,但公司坚持使用遗留系统,并与我们现有的Access系统进行许多复杂的集成,因此升级对我们而言目前并不是想法。所以我只是试图从Access 2000中获得最大的收益。 如果我们升级了系统,但是有很多代码需要检查,我们正在重写和测试将涉及的新更改! – Justin 2013-04-05 13:00:44

回答

2

这里有一些想法让你遵循。

你说你也有很多本地表。将本地表分成另一个Access数据库。因此,您将拥有2个后端(1个SQL Server & 1 Access)和前端。

创建一个批处理文件,用/compact选项打开本地表后端数据库。因此,它看起来像这样:

"C:\Prog...\Microsoft...\Officexx\ C:\ProjectX_backend.mdb /compact" 

然后使用计划任务每​​天运行此批处理文件。除非您以任何方式进行编辑,否则您的前端应永不需要压缩。

+0

我试过这个方法,它对于我想要的是完美的!膨胀不包含在本地后端可以说,并保持前端新鲜和无臃肿!欣赏汤姆的想法!谢谢! – Justin 2013-04-09 13:07:56

+0

不客气。很高兴它对你有效。 – 2013-04-09 17:12:29

1

如果你对2000年的声誉不好,那么你必须深入研究你的应用程序,并找出造成膨胀的原因。最常见的原因是大容量插入之后删除。其他原因是使用OLE对象字段。其他原因是在形式等对象上的程序变化。你真的必须通过你的应用程序,找到具体的原因。

仅连接到支持的服务器并且不会更改本地对象的mdb文件不应该增长。

至于你的随机问题,除了在2000版本中缺乏稳定性之外,如果你的mdb文件在网络上共享,你应该查看计算机坏的RAM,坏的硬盘驱动器和坏掉的网络控制器。

+0

谢谢您的建议!我将着眼于这些潜在的问题,可能会导致重大的系统膨胀。计算机可能有一部分可以玩,因为我们仍然在某些机器上运行XP,这可能会限制可用RAM,因为XP限制!当我尝试并测试了其中一些想法时,我会报告。 – Justin 2013-04-05 13:04:49