Access. Программирование на VBA

       

Оптимизация настройки механизма Jet Database Engine


Хорошо

настроенный компьютер и оптимизированная инсталляция базы данных не помогут повысить производительность, если не оптимизировано само приложение. Настоящее приложение базы данных состоит из нескольких частей. Самой важной из них является механизм баз данных Jet. Механизм Jet — это центр почти всего, что происходит в приложении баз данных Access, и его можно оптимизировать точно так же, как и другие функции Access. Попытки оптимизировать Jet должны быть предприняты после разработки большей части, если не всего, приложения; при этом необходимо затратить достаточное ко­личество времени на оценку различных методик оптимизации.

Jet 4.0, который поставляется вместе с Access 2000, обладает несколькими преимуществами над сво­ими предшественниками. Такие возможности, как новые типы данных, сжатие текста, индексация полей примечаний, внедрение ANSI SQL-92, управление SQL Security, большая гибкость в работе с внешними индексами, улучшенная схема репликации и улучшенные блокировки, обещают способствовать повыше­нию производительности. Все эти прекрасные возможности подробно описываются в других статьях. В этой статье рассматривается только их влияние на производительность.

Механизм Jet выполняет основную оптимизацию без вмешательства разработчика или пользователя. Из всех сложных действий, которые выполняет Jet, можно увидеть только около 15, если заглянуть в сис­темный реестр. Эти установки оказывают серьезное влияние на многие аспекты функционирования сис­темы, поэтому обращаться с ними следует с осторожностью. Изменение установки может привести к результату, совершенно противоположному тому, который ожидался. Даже если приложение на первый взгляд работает быстрее, может оказаться, что нанесен серьезный ущерб стабильности и совместимости. Список установок Jet Registry приведен в табл. 1.

Таблица 1. Установки в системном реестре для Jet 4.0.

Ключ

Описание

Значение по умолчанию



Место нахождения ключа

Константа для метода SetOption

ExclusiveAsyncDelay

В эксклюзивной среде это – количество миллисекунд, в течение которых Jet должен ожидать перед выполнением неявной транзакции.

2000

\HKEY LOCAL MASH1NES

\SOFTWARE\MICROSOFT

\JET\4.0\ENGINES\JET 4.0

dbExclusiveAsyncDelay

FlushTransactionsTimeout

Когда здесь введено значение, задержки SharedAsyncDelay и ExclusiveAsyncDelay отключены. Это значение указывает число миллисекунд перед запуском асинхронных записей, если в кэш не были добавлены страницы.

500

\HKEY LOCAL MASH1NES\SOFTWARE

\MICROSOFT\JET

\SOFTWARE\MICROSOFT\JET

\4.0\ENGINES\JET 4.0

dbPlushTransactions

Timeout

ImplicitCornrnitSync

Определяет, должна ли ожидать система выполнения неявных транзакций перед продолжением процесса. Если ключ установлен в значение No, Jet выполняет неявные транзакции асинхронно.

No

\HKEY LOCAL MASH1NES

\SOFTWARE\MICROSOFT\JET

\4.0\ENGINES\JET 4.0

dblmplicitCommitSync

LockDetay

Число миллисекунд, в течение которых Jet ожидает, прежде чем повторить попытку блокировки.

100

\HKEYLOCALMASHINES

\SOFTWARE\MICROSOFT\JET

\4.0\ENGINES\JET 4.0

dbLockDelay

LockRetry

Количество повторных попыток для блокировки страницы.

20

\HKEY LOCAL MASH1NES

\SOFTWARE\MICROSOFT\JET

\4.0\ENGINES\JET 4.0

dbLockRetry

MaxBufferSize

Размер кэша Jet в килобайтах.

0

\HKEYLOCALMASHINES

\SOFTWARE\MICROSOFT\JEr

\4.0\ENGINES\JET 4.0

dbMaxBufferSize

MaxLocksPerRte

Максимальное количество блокировок, разрешенных для одной операции. Если для транзакции требуется больше блокировок, она разбивается на несколько транзакций, которые могут быть проведены отдельно и частично. Данную установку можно использовать для предотвращения проблем, которые могут возникнуть с проблем, которые могут возникнуть с Novell NetWare 3.1.

9500

\HKEYLOCALMASHINES

\SOFTWARE\MICROSOFT\JET

\4.0\ENGINES\JET 4.0

dbMaxLocksPerRle

<

Содержание раздела