如何增加MS Access 2007数据库的大小?

5

我开发了一个Windows应用程序,后台数据库是Access 2007。我听说Access 2007的最大限制是2GB。

现在我的问题是,有没有办法将大小增加到超过这个限制?如何为应用程序创建多个数据库以增加大小和性能?


6
SQLServer Express 2008有10GB的限制。放弃使用并切换到更好的数据库。 - David Brabant
如果我使用SQLServer Express 2008,客户端的最低要求是什么? - sandeep nagabhairava
我认为一旦你的数据量超过了MS Access的限制,使用SQL Server是个不错的选择。主要问题在于需要额外的培训来正确维护SQL Server后端。 - Fionnuala
2
大小从哪里来?2GB对于大多数情况和没有IT部门的SQL Server可能是一个问题。 - Fionnuala
要求 SQL Server Express 2008 http://www.microsoft.com/en-us/download/details.aspx?id=23650 - Ralf de Kleine
4个回答

7
您可以将数据分区到一个或多个额外的数据库文件中,然后从您的主应用程序数据库创建卫星表的链接。
虽然这种策略可以让您在Access中使用超过2GB的数据,但并不是一个很好的选择。其中一个缺点是您无法在不同的数据库文件中强制执行参照完整性;仅此一点就足以使分区成为许多应用程序的非起始者。
另一个问题是临时工作空间。当数据库引擎需要一个磁盘文件作为工作空间时,它会使用一个临时文件。而且该临时文件也被限制在最大2GB。因此,如果您有6GB的数据分布在4个每个1.5GB的数据库文件中,并且您需要做一些需要处理超过2GB数据的事情,那么您可能会收到关于磁盘空间不足的错误消息。这并不意味着磁盘已满;它意味着所需的临时工作空间大于2GB。
我曾经做过那种分区,我不想再做了。要求Access管理那么多数据是不合理的;我不得不花费太多时间等待它完成我要求的几乎所有任务。将这项工作转移到更有能力的数据库系统中会更好。因此,它不仅是总存储容量的问题,而且还涉及存储数据库如何处理大型数据集。您的Access应用程序可以成为客户端-服务器数据库的客户端。
我还认为您应该对您正在存储的内容进行批判性审查。例如,有些人喜欢存储图像。我不这样做。相反,我存储图像文件的路径。对于其他文件类型也是如此。也许您会发现可以不存储BLOB,您可以将数据库大小舒适地减小到2GB限制以下,并继续使用Access作为存储。

1
当我将外部数据导入表格时,我的数据库达到2GB时也遇到了同样的问题。我只需在设置中禁用缓存即可。
转到“文件”>“选项”>“当前数据库”。
在“缓存Web服务和SharePoint表”下面。
勾选“使用与Microsoft Access 2010及更高版本兼容的缓存格式”。
勾选“关闭时清除缓存”。
勾选“永不缓存”。

1
我在一个数据库上遇到了同样的问题,这个数据库经过17年的输入已经接近2GB的限制,它已经被拆分了,所以无法做任何处理。最后我通过调整最大的表格发现问题出在嵌入的JPG图像上,其中数量非常庞大——例如,在Access表格中使用员工或工人的嵌入式图片非常普遍。我正在实施的解决方案进展顺利。所有图片都已经在文件中,因此可以设计一个新的表单,使用超链接将图片链接起来并加入一些代码。在后端删除嵌入的图片。我已经在数据库副本上模拟了这个过程。这将把数据库大小从1.6GB减小到不到300MB,所以在尝试SQL之前,你可以考虑这个解决方案。

1

此外,请务必定期压缩数据库,以防止不必要的垃圾堆积。我知道这并没有回答你如何增加访问数据库大小限制的问题,但它将有助于防止你达到该限制。如果您想设置此项以进行压缩,则可以在关闭数据库时运行此代码。http://vbadud.blogspot.com/2007/09/reducing-size-of-microsoft-access.html - Scotch

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接