Рабочие файлы
В процессе работы СУБД ЛИНТЕР создает следующие рабочие файлы:
-
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).
Размеры рабочих файлов не являются фиксированными на протяжении всего сеанса работы ядра СУБД, а расширяются по мере необходимости. Устанавливаются только их предельные размеры (см. документ «Создание и конфигурирование базы данных», команды SET SYSWRK LIMIT и SET SYSWBV LIMIT).
Страницы данных рабочего файла 1.41 используются для хранения файловых рабочих областей СУБД ЛИНТЕР и их дескрипторов. Рабочие области предназначены для хранения результатов обработки данных различных пользователей, контента триггерных операций и хранимых процедур и т.п. Логическая структура страниц данных рабочего файла приведена на рисунке 11.
Страницы дескрипторов выделяются по мере необходимости (в начале работы СУБД ЛИНТЕР их нет вообще) и могут располагаться в разных местах рабочего файла, а номера этих страниц сохраняются в специально выделенном массиве в пуле ядра СУБД. Размер этого массива задается при создании БД (см. документ «Создание и конфигурирование базы данных», команда SET WORKAREA).