使用 Excel(强大的查询编辑器)在 Access DB 内部查询比外部查询更快?
Query inside Access DB faster than external query with Excel (power query editor)?
我应该优化我公司旧 Access DB 的性能。它包含几个 table,大约有 20 列和 50000 行。速度很慢,因为人家是用整个table然后再设置过滤器的。
现在想写一个查询减少Excel中的数据量,然后再传输完整行,但是速度还是很慢
首先,我尝试了 Excel 中新的强大查询编辑器。我首先通过 select 仅最后几行(按日期)减少了行数。然后我与第二个 table.
进行了内部连接
最后我得到了不到 20 行的返回,我认为我很好。
但是当我开始 Excel 执行查询时,读取数据需要 10 - 20 秒。我可以看到,Excel 在设置过滤器之前加载了完整的 tables。
我的下一次尝试是在 Access DB 中直接创建相同的查询,设置相同。然后我在 Excel 中打开这个查询,加载行的时间几乎为零。你select"refresh",结果立竿见影
我的问题是:有没有什么方法可以只在 Excel 中执行查询(不触及 Access 文件),这几乎与在 Access 本身中查询一样快?
此致,
斯特凡
当然可以。
只是 运行 来自 Excel 中 MS Query 的 SQL 查询。您可以在 Access 中创建查询,在 MS Query 中 copy-paste SQL。它们由相同的数据库引擎执行,并且应该 运行 以完全相同的速度。
请参阅 this support page,了解如何 运行 在 Excel 中使用 MS Query 进行查询。
使用 VBA 的更复杂的解决方案可用,但不需要。
我应该优化我公司旧 Access DB 的性能。它包含几个 table,大约有 20 列和 50000 行。速度很慢,因为人家是用整个table然后再设置过滤器的。
现在想写一个查询减少Excel中的数据量,然后再传输完整行,但是速度还是很慢
首先,我尝试了 Excel 中新的强大查询编辑器。我首先通过 select 仅最后几行(按日期)减少了行数。然后我与第二个 table.
进行了内部连接最后我得到了不到 20 行的返回,我认为我很好。 但是当我开始 Excel 执行查询时,读取数据需要 10 - 20 秒。我可以看到,Excel 在设置过滤器之前加载了完整的 tables。
我的下一次尝试是在 Access DB 中直接创建相同的查询,设置相同。然后我在 Excel 中打开这个查询,加载行的时间几乎为零。你select"refresh",结果立竿见影
我的问题是:有没有什么方法可以只在 Excel 中执行查询(不触及 Access 文件),这几乎与在 Access 本身中查询一样快?
此致, 斯特凡
当然可以。
只是 运行 来自 Excel 中 MS Query 的 SQL 查询。您可以在 Access 中创建查询,在 MS Query 中 copy-paste SQL。它们由相同的数据库引擎执行,并且应该 运行 以完全相同的速度。
请参阅 this support page,了解如何 运行 在 Excel 中使用 MS Query 进行查询。
使用 VBA 的更复杂的解决方案可用,但不需要。