Распечатать страницу

Буферизация в Microsoft Visual FoxPro

« Назад

Буферизация – это такой способ внесения изменений в таблицу, когда первоначально изменения выполняются в памяти, а затем переносятся на диск.

VFP поддерживает 2 вида буферизации: пессимистическую и оптимистическую, различающиеся подходами к блокировке и освобождению записей. Возможны следующие способы буферизации записей и таблиц:

  1. Нет буферизации. Предоставляется прямой доступ к записям.

  2. Пессимистическая буферизация записи. Запись блокируется одним пользователем на все время выполнения изменений. Другим пользователям запись доступна только для чтения.

  3. Оптимистическая буферизация записи. Запись на время выполнения изменений не блокируется. Блокировка выполняется только в момент переноса изменений в таблицу, что уменьшает время ограниченного доступа к записи.

  4. Пессимистическая буферизация таблицы. Записи блокируются на все время редактирования. Блокировка снимается, когда выполняется функция TABLEUPDATE( ).

  5. Оптимистическая буферизация таблицы. Записи блокируются только на время выполнения функция TABLEUPDATE( ). Для отказа от изменений – удаления данных из буфера употребляется TABLEREVERT( ). Функция должна быть вызвана до фиксации изменений, например функцией TABLEUPDATE( ).

Пессимистическая буферизация обеспечивает наибольшую безопасность с позиции сохранения целостности данных, но является самой медленной.

Для буферизованной таблицы не поддерживаются некоторые команды, например следующие: ALTER TABLE, INDEX, MODIFY STRUCTURE, PACK и ZAP.