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

<


Ключ

Описание

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

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

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

Pages LockerfIoTableLock

(Новая возможность Access 2000)

Обеспечивает эксклюзивный доступ к таблице

для проведения обновлений, позволяя

программно управлять количеством блокировок

страницы, перед достижением которого Jet

попытается блокировать всю таблицу.

Значение 50 заставит Jet попытаться

блокировать таблицу на 51-й блокировке

страницы. Если блокировка таблицы не

удастся, Jet совершит новую попытку на 101-

и блокировке странице. При нулевом

значении данная функция отключается.

0

\HKEY.LOCALMASHINES

\SOFTWARE\MICROSOF7\

JET\4.0\ENGINES\JET 4.0

Отсутствует

PageTimeoirt

Количество времени (в миллисекундах), в

течение которого блокированная на

чтение страница удерживается в кэше

перед обновлением.

5000

\HKEYLOCAL MASHINES

\SOFTWARE\MICROSOFT\

JET\4.0\ENGINES\JET 4.0

dbPageTimeout

RecycteLVs

Определяет, будет ли Jet повторно

использовать OLE, примечания и

бинарные страницы.

0 (отключено)

\HKEY LOCAL MASHINES

\SOFTWARE\MICROSOFT

\JET\4.0\ENGINES\JET 4.0

dbRecycteLVs

SharedAsyncDelay

В общей среде это - количество миллисекунд,

в течение которых Jet должен ожидать перед

проведением неявной транзакции.

50

\HKEYLOCAL MASHINES

\SOFTWARE\MICROSOFT

\JET\4.0\ENGINES\JET 4.0

dbSharedAsyncDelay

Threads

Количество фоновых подлроцессов,

использующих Jet.

3

\HKEYLOCAL MASHINES

\SOFTWARE\MICROSOFT

\JET\4.0\ENGINES\JET 4.0

Отсутствует

UserCommitSync

Определяет, ожидает ли система завершения

операций записи перед продолжением процессов.

Если ключ установлен в значение No, механизм

Jet выполняет явные транзакции асинхронно.

Yes

\HKEY LOCAL MASHINES

\SOFTWARE\MICROSOFT

\JET\4.0\ENGINES\JET 4.0

dbllserCommitSync

CompactByPKey

Определяет порядок кодировки начальных

значений. При значении 1 Jet повторно

отсортирует записи по начальному значению.

При значении 0 записи остаются в том

порядке, в котором они были введены

(естественный порядок).

1

\HKEY LOCAL MASHINES

\SOFTWARE\MICROSOFT

\JE7\4.0\ENGINES

Отсутствует

System DB

Полный путь и имя файла рабочей группы.

nyn,Access

\system.md

\HKEY LOCAL MASHINES

\SOFTWARE\MICROSOFT

\JET\4.0\ENGINES

Отсутствует

PrevFormatCompact

WithUNICODECompression

(Новая возможность Access 2000) Разрешает

или предотвращает сжатие хранящихся

текстовых полей и полей примечаний. По

умолчанию сжатие разрешено.

1

\HKEY LOCAL MASHINES

\SOFTWARE\MICROSOFT

\JET\4.0\ENGINES

Отсутствует

JetShowPlan

По умолчанию не инсталлирован. При

создании разработчиком и установке в

значение On (зависит от регистра) Jet

создает в текущей папке текстовый файл с

именем showplan.out. При выполнении

запросов в этом файле регистрируются планы

выполнения. По окончании разработки ключ

необходимо отключить.

По умолчанию

не инсталлирован.

\HKEY LOCAL MASHINES

\SOnWARE\MICROSOFT

\JET\4.0\ENGINES\JET 4.0

Отсутствует


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