Ну, проблема в том, что ваша локальная сеть (ЛВС) примерно в 10 раз или более быстрее, чем ваше интернет-соединение.
Ваша недорогая офисная сеть, скорее всего, будет сетью в 1 гигабит.(100 base T - редкость).
Тем не менее, ваше высокоскоростное интернет-соединение, вероятно, скажем, 10 Мбит.Итак, вы идете с 1000 до 10 - это в 100 раз медленнее.Итак, 3 секунды теперь становятся 300 секундами.
Я имею в виду, что при такой более низкой скорости соединения здесь не должно быть ничего удивительного.
Что вы можете сделать для любого отчета, представляющего собой сложное объединение клиентской части SQL, - это преобразовать SQL-запрос в представление на стороне сервера, ссылку на это представление.Теперь используйте это представление в качестве основного источника для отчета.И, конечно же, существующие VBA-файлеры, которые вы всегда используете (правильно ???) для запуска отчета, теперь будут выводить только те данные, которые ему нужны, по сетевому каналу.Доступ к отчетам (или формам) сводит только то, что вы просите, а не всю таблицуТаким образом, любой ваш фильтр (используйте условие where команды open report) будет соблюден.Таким образом, вам нужно либо извлечь меньше данных, либо просто найти что-то с такой же скоростью, что и ваша локальная сеть (а такой высокоскоростной интернет встречается редко).
Концепция и скорость локальной сети против глобальной сети описана в этой статье:
http://www.kallal.ca//Wan/Wans.html
Хотя приведенная выше статья очень старая, различия в скорости Интернетасегодня примерно в 10 раз быстрее, но так же и в локальной области, которая выросла со 100 baseT до 1 гигабитной базы.
Итак, все идет медленнее, потому что вы работаете со значительно более медленной скоростью соединения.Чем медленнее, тем медленнее !!!
Редактировать
Хотя, как уже отмечалось, доступ будет тянуть только то, что вы просите, в случае, когда клиент доступа выполняет плохую работу, это SQL-запросы, которые включают несколько таблиц - частоклиент испортит то, что он отправляет на серверную сторону.Как уже отмечалось, решением в этом случае является принятие представлений на стороне сервера.Это означает, что вы перемещаете запрос на стороне клиента, который выводит отчет в представление, и ссылаетесь на него.Вы не получаете большую производительность для одного запроса таблицы, но для любого отчета, основанного на сложных (многостоловых объединениях), тогда использование представления заставит sql и "объединить работу" происходить на стороне сервера sql, и это может привести к огромнымприрост производительности.