1

我有多个 ~50MB Access 2000-2003 数据库(MDB 文件),它们只包含带有数据的表。数据库位于我企业的服务器上,响应时间约为 1-2 秒(在文件资源管理器中浏览时手动打开 50 个 MDB 文件大约需要 10 秒)。我有其他只包含表单的数据库。大多数表单数据库(仍然是 MDB 文件)实际上是在使用批处理文件执行之前从服务器复制到客户端(经过一些测试,执行看起来更顺畅)。大多数表单数据库使用表链接从数据数据库中获取数据。

现在,我的问题是:将我的 ~50MB 数据库中的所有数据库合并成一个大数据库(比如说 500MB)有什么优点/缺点吗?会不会慢一些?如果我不必连接到所有这些不同的数据库并且我认为 500MB 不是很多,那么它实际上会有助于清理我的代码,但我不会假装真的习惯了 Access,那就是为什么我要问。如果 Access 需要读取整个 MDB 文件以从特定表中获取数据,那么它会更慢。Microsoft 不会真的那么令人惊讶,但到目前为止,我对 MS Access 数据库的性能感到满意。

永远不会有超过 50 人同时连接到数据库(很可能,这个数字实际上不会超过 10 人,但我宁愿在这里稍微保守一点,以防万一)。

4

2 回答 2

1

你在这里如履薄冰。
Access 将处理您的方案,但并不真正意味着允许如此多的并发连接。
将所有内容合并到一个大型数据库 (500mb) 中并不是明智之举。
您是否尝试过从网络位置打开它?

据我建议,我将使用后端 SqlServer Express 将所有表合并到一个真实的客户端-服务器数据库中。
客户端 mdb 前端所需的更改不应非常普遍。

于 2012-12-14T14:14:58.870 回答
1

db 引擎不会读取整个 MDB 文件以从特定表中获取信息。它必须从系统表(名称以 MSys 开头的隐藏表)中读取信息,以确定您需要的数据存储在哪里。此外,如果您使用查询从表中检索信息,并且 db 引擎可以使用索引来确定哪些行满足查询的WHERE子句,它可能只从表中读取这些行。

但是,您的网络性能存在问题。当这些导致连接断开时,您就有损坏 MDB 的风险。这就是为什么 Access 不太适合在广域网或无线连接中使用的原因。即使在有线 LAN 上,当网络不稳定时,您也可能会遇到此类问题。

因此,虽然减少通过网络提取的数据量是一件好事,但它并不是在不稳定的网络上访问 Access 的最佳方法。相反,您应该将数据迁移到客户端-服务器数据库,以便在连接断开的情况下保持安全。

于 2012-12-14T14:44:52.153 回答