1

我需要查询一个数据库并保存超过 600 万条记录,以便以后使用 excel VBA 进行分析和报告。最好的方法是什么?我需要能够稍后访问数据,分析它并生成分析数据的报告(我应该能够在我的系统中本地访问整个数据并且应该能够快速处理它)MS访问保存数据有多好如果记录数量达到数百万?我没有很多同时使用 oracle 和 VBA 的经验。如果与 excel VBA 一起使用,这是一个好方法吗?如果有人可以提供一些可能有助于我完成任务的链接,我将不胜感激。

注意:由于我无法控制的原因,我无法选择使用其他语言。我在 Java 方面相当不错,但不能使用它。

4

2 回答 2

2

我需要查询一个数据库并保存超过 600 万条记录,以便以后使用 excel VBA 进行分析和报告。

我希望对这些记录的子集进行分析,因为即使使用 Excel 2010,您也被限制为 1,048,576 行。

我需要能够稍后访问数据,分析它并生成分析数据的报告(我应该能够在我的系统中本地访问整个数据并且应该能够快速处理它)MS访问保存数据有多好如果记录数量达到数百万?

它会做到的。我已经做到了(包括很多年前,通过直接连接到 Oracle 数据库),尽管其中一个问题是其中有多少列,正如评论中提到的那样。在处理海量数据集时,很容易开始对 Access 中的 2GB 文件大小限制感到头疼。

“快”是另一回事。我已经基本停止使用 Access,因为我认为在处理大量数据时速度慢得令人无法接受。无论“JET”这个名字是从哪里来的[1],哈迪斯肯定不是它速度的隐喻。

Access 确实具有的一个优点是,它可以让您非常轻松(如果不是很快)生成 Excel 样式的分析报告(包括一些图形报告),还允许您在创建它们时使用 VBA。另一方面,我的数据处理工具 SQL Server 速度更快,但几乎没有任何前端。可能理想的情况是(也提到过)使用 Access 或 Excel 来做前端,而 SQL Server 来做繁重的工作,除非(更好)你可以在 Oracle 中做这个工作,而不是在本地保存数据,然后让 Excel/VBA 为您直接从 Oracle 提取的汇总查询创建报告。

如果报表运行到数百万行,我会回避使用 Excel,但实际上,运行这么长时间的报表无论如何都不值得。这是数据转储,而不是报告。


[1] 是的,是的,我知道,联合引擎技术。

于 2012-11-09T19:16:28.937 回答
2

如果您想在 Excel 中处理超过 100 万行数据,您应该查看PowerPivot,它是 Excel 2010 的加载项(它内置于 Excel 2013 中)。除了每行上的计算字段外,它还允许 1 亿行数据,尽管这些计算可能会比其他人推荐的 SQL 后端/Excel 前端解决方案慢。

于 2012-11-09T20:11:34.033 回答