MS Access 2003 フロント エンドを使用して、Visual Foxpro 9 アプリケーションが所有するネットワーク ドライブ上のデータに odbc 経由でアクセスしています。基本的な DBF ビューアーまたはテーブルが属するアプリケーションを使用している場合は瞬時にロードされますが、Access インターフェイスにロードするのに数分かかります。データをクエリするときは、テーブル ビュー全体を開くよりも高速ですが、それでも予想よりもはるかに遅くなります。アクセスしているマシンは同じネットワーク上にあり、アプリケーションを介したアクセスは、現在、その 10 倍のレコードを持つ Web ホスト型 SQLServer よりも低速です。
VFP ODBC リンクを使用して速度を上げるために試してみることができることについて、明白ではない提案をいただければ幸いです。
編集
ありがとう Dave、現在、Access の [クエリ] タブ内で動作するようにクエリをいじっています...
現状のクエリの実行には約 4 分かかります。約 230 レコードの入力条件に基づいて、10 行の情報を含むクロス集計が返されます。グループ テーブルの結合とフィールドなしで試してみましたが、違いはごくわずかです。
それにいくつかの視点を置くだけです:
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#));