Оптимизировать открытие базы данных доступа по сети с высокой задержкой через DAO в VB6 - PullRequest
0 голосов
/ 15 февраля 2019

Унаследованное приложение, которое со временем трансформируется в новую платформу.Тем не менее, в то же время ищем простые исправления для повышения производительности по сравнению с соединениями с высокой задержкой.В некоторых случаях операции, которые занимают секунды, могут занимать 10 минут на удаленных сайтах.

После анализа основная проблема заключается в том, что один и тот же набор записей открывается сотни раз с помощью DAO, каждая попытка открыть набор записей инициирует обратный вызовфайлообменник хостинг файл MDB.Из-за высокой задержки соединения эти множественные вызовы являются дорогостоящими операциями.

Сами файлы MDB, как правило, имеют небольшой размер, обычно несколько МБ, файлы могут открываться исключительно для пользователя, открывающего файл.

Dim db As DAO.Database
Dim rs As DAO.Recordset

Set db = DAO.OpenDatabase("<path to mdb>", True, False, "")
Set rs = db.OpenRecordset("Data")

Любые предложения по вариантам для лучшего кэширования данных или уменьшения сетевого трафика с минимальным перекодированием.

Хотя DAO использовать не нужно, в идеале любой альтернативный метод будет легко заменитьс DAO.

1 Ответ

0 голосов
/ 15 февраля 2019

Эта настройка выходит за рамки рекомендуемого использования.По крайней мере, соединение WAN должно осуществляться через высокоскоростное оптоволоконное соединение с малой задержкой.

Однако может работать синхронизация папки на обоих концах через OneDrive , так каксинхронизированный файл кэшируется и доступен локально.Конечно, в этом случае только один пользователь может работать с базой данных одновременно, поскольку вы не можете контролировать, как и когда произойдет синхронизация.

...