Ограничение объема загружаемых с сервера данных

Необходимо ограничить объем загружаемых данных из базы данных на SQL Server, насколько это возможно. Используйте для этого представления, хранимые процедуры, определяемые пользователем функции, фильтры, выполняющиеся на сервере, и предложение SQL WHERE, позволяющее выделить только нужные записи для отображения в клиентском приложении. Следует избегать таких сценариев работы, где пользователю разрешается просматривать весь объем данных.
Рекомендуется ограничить максимальное число возвращаемых запросом или отображаемых в форме записей с помощью специальной кнопки Максимальное число записей (Maximum record limit) или свойства Максимальное число записей (MaxRecords), которое можно установить в программе VBA или в окне свойств запроса или формы.
Используйте фильтры, выполняющиеся на сервере, прежде чем загружать данные с сервера, и фильтры, выполняющиеся на клиенте, чтобы ограничить объем отображаемых данных. Для формы или отчета можно установить фильтр с помощью свойства Серверный фильтр (ServerFilter). Увеличить быстроту загрузки списков значений можно, установив подходящее значение свойства Применение автофильтра (FilterLooknp) (элемента управления для отображения ограниченного набора значений, загружаемых с сервера или с другой рабочей станции.
 
Повышение производительности при работе с отчетами
Существует ряд правил, соблюдение которых позволяет повысить скорость печати отчетов. Наряду с перечисленными ниже советами полезно проверить конкретные отчеты с помощью анализатора быстродействия.

  • Для печати большого набора данных создавайте составные отчеты, содержащие подчиненные данные, используя в качестве источника данных представления, хранимые процедуры, предложения SQL или фильтры.
  • Используйте режим Образец (Layout Preview) вместо режима Предварительный просмотр (Print Preview) при проектировании отчета. Режим Образец (Layout Preview) позволяет быстро просмотреть структуру отчета, т. к. в отчет загружается лишь образец данных, а это требует гораздо меньшего времени, чем загрузка всего объема данных. Используйте режим Предварительный просмотр (Print Preview) для проверки данных после того, как проектирование структуры отчета завершено.
  • Чтобы распространить среди сотрудников такую периодическую информацию, как расписания, недельные отчеты, планы продаж и пр., создавайте отчеты в формате снимка отчета (snapshot) и распространяйте их пользователям, которые могут посмотреть их с помощью программы просмотра снимков Snapshot Viewer. Если необходимо предоставить пользователям оперативную информацию, используйте для этого страницы доступа к данным.

 

Повышение производительности при работе с формами
Некоторые рекомендации по повышению производительности форм в клиентском приложении.

  • При проектировании формы определите, какие данные она должна предоставлять и какой функциональностью должна обладать. Отложите процесс загрузки данных с сервера до того момента, когда это потребуется пользователю. Создайте форму, в которую данные не будут загружаться в процессе открытия, поместите в форму специальную кнопку, позволяющую загрузить данные.
  • Используйте в формах минимальное количество полей, требующих длительного времени для загрузки данных, таких как текст и графические элементы. Поместите поле с текстом или рисунок в подчиненную форму, использующую тот же источник данных, что и главная форма.
  • Помещайте в главную форму только основные поля, все остальные данные поместите в подчиненную форму, открываемую с помощью специальной кнопки с названием Дополнительная информация в главной форме. В качестве источника данных для подчиненной формы используйте запрос, параметризованный ключевыми полями источника данных главной формы.
  • Для ввода данных создайте отдельные формы специального типа, установив для них значение Да (Yes) свойства Ввод данных (Data Entry). В формы такого типа данные из источника данных (находящегося на сервере) не загружаются, в них отображаются только добавляемые записи, что значительно ускоряет работу.
  • Минимизируйте число строк, показываемых в полях со списком, если данные для этих списков берутся с сервера. Если данные редко модифицируются, то лучше храните их в локальных таблицах и создайте процедуру для синхронизации серверных и локальных таблиц. В локальных таблицах, хранящих такие данные, обязательно постройте индексы, чтобы ускорить создание списков.
  • Если форма или отчет основаны на параметризованной хранимой процедуре, устанавливайте значение параметров с помощью свойства Входные параметры (Input Parameters).
  • Чтобы удалить или обновить данные, используйте инструкции SQL UPDATE и DELETE с параметром WHERE. Этот способ более эффективен по сравнению с открытием набора записей и выполнением над ним необходимых операций.