我正在使用 MS Access 2003 前端通过 odbc 访问 Visual Foxpro 9 应用程序所拥有的网络驱动器上的数据,而且速度似乎慢得令人难以置信 - 一个特定的表中有大约 1400 条记录,这需要很好的时间分钟加载到 Access 界面上,尽管在使用基本的 DBF 查看器或表所属的应用程序时,它是即时的。查询数据时,比打开整个表格视图要快,但还是比我预期的要慢得多;它正在访问的机器在同一个网络上,并且目前通过应用程序访问它的速度比通过网络托管的 SQLServer 慢,它的记录数很容易达到 10 倍。
任何关于我可以尝试使用 VFP ODBC 链接来加快速度但不明显的建议将不胜感激。
编辑
谢谢戴夫,目前,我只是在玩一个查询,试图让它在 Access 的查询选项卡中工作......
查询目前的运行大约需要 4 分钟。它返回一个包含 10 行信息的交叉表,基于大约 230 条记录的输入标准 - 我已经尝试过没有来自 Group 表的连接和字段,但是速度差异可以忽略不计。
只是对它提出一些看法:
Allsales 包含大约 50 个字段和 15,000 条记录 Stock 包含大约 100 个字段和 500 条记录 Groups 包含 3 个字段和 8 条记录。
SELECT allsales.type, allsales.branch, allsales.terminal, allsales.date, Sum(allsales.totalprice) AS SumOftotalprice, Sum(allsales.discamount) AS SumOfdiscamount, Sum(allsales.tender1) AS SumOftender1, Sum(allsales.tender2) AS SumOftender2, Sum(allsales.tender3) AS SumOftender3, Sum(allsales.tender4) AS SumOftender4, Sum(allsales.tender5) AS SumOftender5, Sum(allsales.tender6) AS SumOftender6, Sum(allsales.tender7) AS SumOftender7, Sum(allsales.tender8) AS SumOftender8, Sum(allsales.tender9) AS SumOftender9, Sum(allsales.tender10) AS SumOftender10, Sum(allsales.tender11) AS SumOftender11, Sum(allsales.tender12) AS SumOftender12, Sum(allsales.loypoints) AS SumOfloypoints, Count(allsales.type) AS Fuzz, groups.desc
FROM (stock RIGHT JOIN allsales ON stock.plu = allsales.plu) LEFT JOIN groups ON stock.cgroupid = groups.id
GROUP BY allsales.type, allsales.branch, allsales.terminal, allsales.date, groups.desc, allsales.reportdate
HAVING (((allsales.reportdate)=#3/1/2010#));