目前正在使用一个 Excel 电子表格,该电子表格至少对外部 Microsoft Access *.mdb 文件进行 10 次数据库查询。对于我公司从事的每个项目,我们都有一个与该项目相关的特定 Excel 文件,因此我们有数百个这样的文件。通常,当分析师打开“数据”选项卡并单击“全部刷新”时,刷新会在一两分钟内完成;但是,对于给定 excel 文件的新项目,完成刷新至少需要一个小时。以下是其中一个连接字符串的示例:
DSN=MS Access Database;DBQ=W:\Projects\Analysis\project.mdb;DefaultDir=W:\Projects\Analysis\Analysis;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;
这是相关的查询:
SELECT Field.FieldNumber, Field.FieldName, Field.GroupMnemonic, Field.ClientFieldID
FROM Field Field
ORDER BY Field.FieldName
我花了很多时间研究各种讨论缓慢 excel 问题的网站,例如http://msdn.microsoft.com/en-us/library/ff700515.aspx;但是,这些网站更多地处理计算和 VBA,而我怀疑性能问题出在访问文件的某个地方。有人对如何解决和解决此问题有任何建议吗?TIA。
更新:正如 JohnFx 在下面的答案中所建议的,我检查了查询,发现它们没有明确的键,所以在 Microsoft Access 数据库生成中添加了这样的键:
CREATE UNIQUE INDEX PIndex ON [myTable] ([KEY])