Иллюстрированный самоучитель по Microsoft Access 2002

Повышение производительности приложения "клиент-сервер"

Повышение производительности внешней базы данных на SQL Server

Полные сведения о повышении производительности баз данных на SQL Server можно найти в документации к SQL Server. Здесь приведены лишь некоторые рекомендации по повышению производительности.

  • Проектируйте таблицы так, чтобы в них не содержалось избыточной информации. Используйте средство нормализации схемы данных (команда Сервис › Анализ › Таблицы (Tools › Analyze › Tables)) для разделения таблиц на несколько связанных. Хорошо спроектированная схема данных способствует более быстрому доступу к данным.
  • Установите контроль ссылочной целостности данных. Это позволит сохранить корректность данных в связанных таблицах при добавлении, удалении и обновлении записей.
  • Выбирайте подходящие типы данных для полей таблиц. Это позволит сэкономить место на диске и оптимизировать операции объединения данных из разных таблиц.
  • Индексируйте поля, по которым производятся сортировка, объединение и выборка. Это приведет к существенному повышению производительности при выполнении запросов, созданных на основе таблиц, содержащих индексированные поля по обе стороны связи, и запросов, производящих выборку по индексированным полям. Однако индексирование полей замедляет процесс добавления, обновления и удаления записей.
  • Добавьте в таблицы поля типа "штамп времени" (timestamp) для повышения скорости удаления и обновления записей, особенно если в таблице содержится большое количество полей. Поле "штамп времени" (timestamp) используется SQL Server перед обновлением записи для определения, была ли запись изменена. Это позволяет получить выигрыш производительности, особенно в многопользовательской среде.
  • Периодически проводите сжатие базы данных на SQL Server, чтобы освободить место на диске и реорганизовать индексы и данные для более быстрого доступа к данным.

Выводы

В данной главе мы рассмотрели вопросы, касающиеся разработки двухзвенных приложений "клиент-сервер" в которых Microsoft Access 2002 используется для реализации клиентской части. Мы кратко описали, как разрабатываются проекты Access, постарались дать рекомендации, каким образом можно оптимизировать такое приложение. Очевидно, что переход от многопользовательского приложения в среде Access к клиент-серверному приложению, использующему сервер баз данных, не простая задача. Недостаточно только перенести данные на сервер – чтобы обеспечить требуемую производительность, его придется перепроектировать, изменив стратегию доступа к данным. Выполнив преобразование базы данных Access в приложение с архитектурой "клиент-сервер" (upsizing), вы получите работающее приложение, но чтобы сделать его эффективно работающим, требуется немало потрудиться. Как мы постарались показать в этой главе, в распоряжении разработчика есть широкий спектр средств доступа к данным, и выбор конкретного решения не всегда очевиден.

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

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.