1

我正在使用 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#));
4

2 回答 2

5

在 ODBC 驱动程序配置中关闭日志记录。

于 2010-03-02T16:42:10.100 回答
0

您可以尝试 FoxPro OLEDB 驱动程序,看看它是否有任何不同。听起来 Access 应用程序可能存在一些问题,以及从 FoxPro 检索数据后如何处理数据。我已经制作了许多使用 FoxPro 作为数据存储的 ASP/ASP.NET 页面,并且没有遇到您描述的问题。您确定运行速度较慢的是 VFP ODBC 数据传输吗?也许发布数据访问代码可以提供线索?

于 2010-03-02T16:42:19.907 回答