Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Введение в СУБД HyTech.doc
Скачиваний:
11
Добавлен:
01.03.2025
Размер:
2.67 Mб
Скачать

Недостатки организации таблиц в субд HyTech

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

  • Увеличивается время поиска.

  • Недостатком дифференциальной организации файлов является необходимость периодического переноса изменений из журнала в постоянную часть. По мере накопления изменений в журнале время отклика увеличивается – приходится сканировать все больший объем данных, переносить изменения в постоянную часть и переиндексировать ее. Обычно эта операция выполняется в специально выделенные моменты времени – регламентные часы. В версии 3.0 СУБД HyTech предусмотрены два режима выполнения переноса данных журнала. Либо в административном режиме (в регламентные часы), либо эта операция выполняется специальным монитором ядра в фоновом режиме – параллельно работе обычных пользователей. В этом случае момент замены старых частей таблицы на новые проходит для них практически незаметно. В версии 2.x предусмотрен только административный режим.

Поиск в таблицах субд HyTech

Поиск в таблицах осуществляется в два этапа: сначала осуществляется поиск записей-целей в постоянной части таблицы (этот поиск выполняется с использованием всех преимуществ индексов), затем полученное множество записей обновляется данными журнала изменений. Найденное в постоянной части множество записей следует скорректировать (вычеркнуть удаленные записи, учесть добавленные и модифицированные), для чего нужно иметь список удаленных, добавленных и последних экземпляров модифицированных записей. При составлении такого списка необходимо учесть возможные сочетания – удаление записей из постоянной части и/или журнала, модификация записей из постоянной части, модификация добавленных или уже модифицированных ранее и пр. Для получения таких списков удобно иметь дело только с признаками выполненных над таблицей операций модификации, а не с самими данными. Чем меньше объем признаков, тем меньшее место они занимают на диске и быстрее выполняется их чтение.

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

Важную роль играет заголовок файла признаков. Именно в нем содержатся счетчики текущего состояния журнала: количество удаленных, измененных и добавленных записей, максимальный номер записи, а также длина значимой части журнала. При работе с журналом всегда «видна» только та его часть, которая описана в заголовке. Если файл признаков длиннее того, что видно в заголовке, это расценивается как последствия прерывания или аварийного завершения каких-либо операций. В этом случае обнаруженная «лишняя» часть не принимается во внимание.

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