Оптимизация размеров рабочих файлов СУБД

В процессе обработки SQL-запросов ядро СУБД использует следующие рабочие файлы:

  • SYSSRT: файл сортировки результатов выборки данных.

    СУБД ЛИНТЕР выполняет сортировку данных при обработке SQL-запросов с конструкциями:

    • группировка данных (GROUP BY-спецификация);

    • сортировка данных (ORDER BY-спецификация);

    • аналитические функции (OVER-спецификация);

    • группировка значений агрегатных функций (WITHIN GROUP-спецификация);

    • SQL-запросы создания условий целостности таблицы (индексов, ключей).

    При сортировке данных вначале используется выделенная по умолчанию или заданная ключом /SPOOL в команде запуска ядра СУБД оперативная память компьютера. Если выделенной оперативной памяти недостаточно для сортировки всего объема данных обрабатываемого SQL-запроса, то часть сортируемых данных будет размещена в файле сортировки SYSSRT (файл 1.51). Начальный размер файла сортировки равен 2 страницы, максимальный размер 500000 страниц.

  • SYSWBV: файл бит-векторов.

    При выполнении SQL-запросов выборки данных для хранения промежуточных результатов используется файл бит-векторов (содержит системную информацию о выбранных в SQL-запросах записях) SYSWBV (файл 1.31). Начальный размер файла бит-векторов равен 16 страниц, максимальный размер 500000 страниц.

  • SYSWRK: рабочий файл.

    При выполнении SQL-запросов выборки данных для хранения промежуточные результатов обработки SQL-запроса используется рабочий файл SYSWRK (файл 1.41). Начальный размер файла равен 4 страницам, максимальный размер 500000 страниц.

При создании БД устанавливаются начальный и максимальный размер указанных файлов. Если начальных размеров файлов недостаточно, то СУБД автоматически расширяет их до необходимых для обработки SQL-запросов размеров, но не более установленного максимального значения и делает это она порциями по EXTSIZE < размер > страниц (расширение выполняется на 1/32 от текущего размера файла с выравниванием до кратного 64 Кбайт, но не больше чем на 32 Мбайт), что приводит к фрагментации файлов и требует дополнительного времени на работу с такими файлами по сравнению с файлами, которые сразу создаются в виде непрерывных файлов заданных размеров. При достижении максимального установленного размера будет выдан соответствующий код завершения.

Управлять размерами рабочих файлов можно двумя способами:

  1. ручным (пользователь на основании некоторой информации задает требуемые начальные размеры рабочих файлов при создании (конфигурировании) БД);

  2. автоматическим (СУБД автоматически расширяет вспомогательные файлы до нужных для обработки SQL-запроса размеров по заданному пользователем правилу).