Рабочие файлы

В процессе работы СУБД ЛИНТЕР создает следующие рабочие файлы:

  • 1.31 – файл бит-векторов. Используется ядром СУБД для хранения информации о записях, найденных при выполнении поискового запроса;

  • 1.41 – рабочий файл для хранения найденных записей поискового запроса (используется также и для хранения временных индексов);

  • 1.5* – файлы сортировки. * может изменяться от 1 до 255. Предназначены для выполнения сортировки результата поискового запроса, обработки SQL-запросов с опциями DISTINCT и GROUP BY, построения индексов и т.д. По умолчанию в БД создается один файл сортировки (1.51), но их количество может быть изменено утилитой gendb;

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

  • хххххххх.61 (например, 00000001.61, 00000002.61, …) – файлы системного журнала, предназначенные для ведения протокола о всех изменениях, сделанных в БД (сеансы чтения в журнале не регистрируются). При внезапном (аварийном) завершении работы СУБД (например, при отключении питания компьютера) некоторые транзакции могут быть не обработанными до конца. В этом случае при следующем запуске ядро СУБД определит по журналу наличие прерванных транзакций и аннулирует все сделанные ими изменения.

Файлы 1.31 и 1.41 имеют одинаковую структуру (рисунок 10).

Физическая структура файлов 1.31 и 1.41
Рисунок 10. Физическая структура файлов 1.31 и 1.41

Размеры рабочих файлов не являются фиксированными на протяжении всего сеанса работы ядра СУБД, а расширяются по мере необходимости. Устанавливаются только их предельные размеры (см. документ «СУБД ЛИНТЕР. Создание и конфигурирование базы данных», команды SET SYSWRK LIMIT и SET SYSWBV LIMIT).

Страницы данных рабочего файла 1.41 используются для хранения файловых рабочих областей СУБД ЛИНТЕР и их дескрипторов. Рабочие области предназначены для хранения результатов обработки данных различных пользователей, контента триггерных операций и хранимых процедур и т.п. Логическая структура страниц данных рабочего файла приведена на рисунке 11.

Логическая структура страниц данных рабочего файла
Рисунок 11. Логическая структура страниц данных рабочего файла

Страницы дескрипторов выделяются по мере необходимости (в начале работы СУБД ЛИНТЕР их нет вообще) и могут располагаться в разных местах рабочего файла, а номера этих страниц сохраняются в специально выделенном массиве в пуле ядра СУБД. Размер этого массива задается при создании БД (см. документ «СУБД ЛИНТЕР. Создание и конфигурирование базы данных», команда SET WORKAREA).