因此,在我的工作场所,他们有一个巨大的访问文件(与 MS Access 2003 和 2007 一起使用)。文件大小约为1.2GB,因此打开文件需要一段时间。我们无法删除任何记录,并且我们有大约 100 多个表(每个月我们都会创建 4 个以上的表,不要问!)。我该如何改进这个,即缩小文件大小?

有帮助吗?

解决方案

好..听@Larry,并牢记的是,在长期来看,你必须找到另一个数据库来保存您的数据!

但在短期内,我感到相当这个“每月4代新表”的东西干扰。每月4桌是每年50 ......那肯定听起来很奇怪的每一个“数据库管理器”在这里。所以,请告诉我们:有多少行,他们如何建立,什么是他们的,为什么你必须每个月建表

根据您与您的数据做什么,你也可以考虑一下归档一些表为XML文件(甚至XLS?)。这可能使有意义的“历史性”的数据,没有通过关系,视图访问,等等。一个很好的例子是从PABX收集的电话名单。数据可以被保存为/从XML / XLS文件加载通过ADODB记录集或TransferDatabase的方法

其他提示

你可以做两件事:

  • 使用链接表
  • 每隔一段时间“压缩”数据库

链接表本身不会限制数据库的总体大小,但会将其“打包”在更小、更易于管理的文件中。看看这个:

'File' menu + 'Get External data' + 'Linked tables'

链接表还具有许多优点,例如允许保留数据子集的多个版本,以及通过链接表管理器选择特定的集合。

压缩数据库可以回收由于各种 CRUD 操作(插入、删除、更新...)导致存储碎片而丢失的空间。它还重新组合表和索引,使搜索更加高效。这是用完成的

  'Tools' menu + 'Database Utilities' + 'Compact and Repair Database...'

你真的推高了对MS访问那里的极限 - 你知道该文件无法种植任何容量大于2GB

我想你已经检查了可能的空间通过额外的正常化保存数据?你可以在“存档”一些表前几个月到单独的MDB文件,然后将它们(永久或根据需要)链接到您的“当前”数据库(在这种情况下,你实际上是从什么是可能的,否则错误的决定中受益开始每月新表)。

但是,随着数据的量,也许是时候开始计划转移到一个更广阔的平台。

您真的应该考虑一下你的数据库架构。如果没有表间的任何链接,您可以尝试其中的一些移动到每年另一个数据库(一个DB :)作为一个短期的解决方案..

每月添加更多表:那已经是一个值得怀疑的态度,以及有关数据标准化看似可疑的点击。 如果你这样做,我怀疑你的数据库结构也是次优的有关字段大小,数据类型和索引。我真的会被双重检查的开始。

如果你真的有每月桌的理由(我无法想象,再次),为什么没有每月1后端?点击 你也可能对主的后端,有,比方说,3个月数据的联机,然后归档数据库,在那里你将您的较旧的记录。结果 我利用它来进行交易,具有约650.000记录的主表,并访问是非常敏感。

一个情侣“在吸管把握”想法

看数据类型的每一列,你也许可以在一定的数字存储为每个记录节省少量的字节

看指标,摆脱你不使用的人的。上大表不必要的索引可以添加大量的开销。

我会+ 2 ^ 64对数据库设计是有点奇怪,但没有一个尚未被这么说我不会劳动的建议点

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top