所以,仅供参考,我的SQL培训非常有限,我的新职位要求我学习,请温柔地对待我:)
首先,我看到了这个:
Multi-table query in Microsoft Access
这正是我原则上需要的;但是,我的数据结构有点不同。我有大约24个数据库,每个数据库平均在8年内在420个机构中提供大约1gb的信息(每年4个数据库 - 总计约1600万个观测数据)。每个字段在数据库中都是相同的
我需要对所有这些信息进行分析,但ms-access数据库限制为2GB,所以我试图找出一种解决方法。我的想法是将每个表链接到主数据库,然后使用上面链接中的选择查询运行查询。我的问题是这是否真的有效。我的计算机有32GB的物理内存,所以我觉得我应该能够在执行任何查询时将所有内容加载到活动内存中,但我仍然不知道。有更有效的方法吗?
基本上,我需要能够多年来查询机构。现在这是不可能的,它会导致问题。由于机构未对其报告的信息进行任何审查,因此我们需要了解报告趋势如何随着时间的推移在其内部和之间发生变化。
我收到了一份大约40个问题的清单,这些问题都涉及我们需要运行的不同查询,所以我希望我能找到一个并不会让我失去理智的解决方案。
谢谢大家的帮助!
-David
答案 0 :(得分:1)
将所有表链接到一个主数据库是完全可以接受的。根据我以前的经验,我有一个主数据库,有80多个后端,许多有一个大表。查询它们的问题是单个Access查询也只能是2Gb。因此,如果在处理过程中您的查询超过该限制,则会出现错误。这可能非常烦人。对我来说,解决这个问题的最佳方法是临时表和驱动程序/参数表。使用驱动程序/参数表来存储您将从源中提取的数据。这可以创建更高效的查询。特别是如果您在连接字段上编制索引。在我的master数据库中,我总是有一个带有VB代码的表单来加载驱动程序/参数表。
现在所有这些都说你在不同的环境中会更开心,甚至是SQL Server Express。然后你就可以使用32Gb的内存了。否则,您将始终不仅处理Access 2Gb文件/查询限制,而且Access是32位应用程序,它无法处理您拥有的所有内存。