5

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

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

4

4 回答 4

7

您可以将数据划分为一个或多个附加数据库文件,然后从主应用程序数据库创建指向附属表的链接。

尽管该策略可以让您使用存储在 Access 中的超过 2 GB 的数据,但这并不是一个好的选择。一个陷阱是你不能在不同的 db 文件中的表之间强制执行引用完整性。仅这一事实就可能使分区成为许多应用程序的非首发。

另一个问题是临时工作空间。当 db 引擎需要一个磁盘文件作为工作空间时,它使用一个临时文件。并且该临时文件也被限制为最大 2 GB。因此,如果您有 6 GB 的数据分布在 4 个 1.5 GB 的 db 文件之间,并且您需要做一些需要处理超过 2 GB 数据的事情,您可能会收到一条错误消息,抱怨磁盘空间不足。这并不意味着磁盘已满;这意味着所需的临时工作空间大于 2 GB。

过去实际上做过一次分区,我不想再做一次。要求 Access 管理这么多数据是不合理的。我不得不花太多时间等待它去做我要求的几乎任何事情。将这项工作卸载到功能更强大的数据库系统会更好。因此,这不仅是总存储容量的问题,而且是存储数据库如何应对大型数据集的问题。您的 Access 应用程序可能成为客户端服务器数据库的客户端。

我还认为您应该严格检查您存储的内容。例如,有些人喜欢存储图像。我不。相反,我将路径存储到图像文件。其他文件类型也一样。也许您可能会发现您可以在不存储 BLOB 的情况下生活,您可以轻松地将数据库大小减小到 2 GB 限制以下,并继续使用 Access 作为存储。

于 2012-06-29T23:35:41.663 回答
1

最大数据库大小为 2GB 减去系统对象所需的空间,但您可以尝试一种解决方法:拆分数据库。有关更多信息,请参阅:

Office.com - 拆分 Access 数据库

MS KB304932 - 如何手动拆分 Access 数据库

于 2012-06-29T08:22:55.433 回答
1

当我的数据库在表中导入我的外部数据时达到 2GB 时,我遇到了同样的问题。我只是在设置中禁用缓存

转到文件 > 选项 > 当前数据库

在缓存 Web 服务和 Sharepoint 表下

选中“使用与 Microsoft Access 2010 及更高版本兼容的缓存格式”

选中“关闭时清除缓存”

选中“从不缓存”

于 2013-08-03T06:12:43.373 回答
1

I had the same problem on a db that had a lot of input over 17 years and was closing on the 2GB limit.It was already split so nothing could be done there. In the end I found by fiddling with the biggest table that the problem was embedded JPG images of which there was a very large number - It was popular for example to use an embedded image of employees or workers in tables in access. The solution which I am now implementing is going well. All the picures are in a file anyway so devise a new form that uses hyperlink to link to the pictures with a little code. delete the embedded images in the backend.I have already simulated this on a DB copy. It reduces size from 1.6 GB to less than 300 MB- so befor resorting to SQL you could look at that as a solution

于 2016-06-19T08:55:36.067 回答