VFPODBC очень медленный - PullRequest
       32

VFPODBC очень медленный

1 голос
/ 02 марта 2010

Я использую интерфейс MS Access 2003 для доступа к данным на сетевом диске, принадлежащем приложению Visual Foxpro 9, через odbc, и это кажется невероятно медленным - около 1400 записей в одной конкретной таблице, и это требуется хорошая минута для загрузки интерфейса доступа, хотя при использовании основного средства просмотра DBF или приложения, к которому принадлежат таблицы, это происходит мгновенно. При запросе данных это быстрее, чем открыть представление всей таблицы, но все же намного медленнее, чем я ожидал; компьютер, к которому он обращается, находится в той же сети, и в настоящее время доступ к нему через приложение медленнее, чем к веб-серверу SQLServer, количество записей в котором в 10 раз больше.

Любые предложения о том, что я могу попробовать с помощью ссылки VFP ODBC, чтобы ускорить его, которые неочевидны, будут приняты.

EDIT

Спасибо, Дейв, в настоящее время я просто играю с запросом, пытаясь заставить его работать на вкладке запроса Access ...

Запрос в его текущем состоянии занимает около 4 минут. Он возвращает кросс-таблицу, содержащую 10 строк информации, на основе критериев ввода приблизительно 230 записей - я пробовал это без объединений и полей из таблицы Group, но разница в скорости незначительна.

Просто взглянем на это:

Allsales содержит около 50 полей и 15 000 записей. Акция содержит около 100 полей и 500 записей Группа содержит 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#));

Ответы [ 3 ]

5 голосов
/ 02 марта 2010

Отключение регистрации в конфигурации драйвера ODBC.

1 голос
/ 02 марта 2010

Возможно, вы захотите проверить эту ссылку, множество полезных советов по работе с источниками данных ODBC

http://support.microsoft.com/kb/286222

0 голосов
/ 02 марта 2010

Вы можете попробовать драйвер OLEDB FoxPro, чтобы увидеть, если это имеет какое-либо значение.Похоже, что могут возникнуть некоторые проблемы с приложением Access и с тем, как если данные обрабатываются после их извлечения из FoxPro.Я сделал много страниц ASP / ASP.NET, которые используют FoxPro в качестве хранилища данных, и у меня не было таких проблем, как вы описали.Вы уверены, что передача данных VFP ODBC выполняется медленнее?Возможно, размещение кода доступа к данным может дать подсказку?

...