Упаковка пользовательских данных
СУБД ЛИНТЕР хранит записи таблиц в файлах данных таблиц в упакованном виде, т.е. все правосторонние концевые пробелы символьных данных и двоичные нули байтовых данных усекаются. При поиске свободных страниц файла данных в процессе добавления новой записи СУБД проверяет наличие в ней свободного места не для всей декларированной записи, а для её упакованной версии.
Определять, что страница файла данных свободна для добавления в неё новой
записи, можно по двум критериям: количеству свободных байтов в ней (например,
459) или по проценту свободного места в ней (например, 20%). СУБД ЛИНТЕР
использует второй критерий. Если свободного места на странице меньше, чем
указанный владельцем создаваемой таблицы размер упакованных записей этой
таблицы (параметр PCTFILL
в SQL-операторе создания таблицы, т.е. меньше, чем
на одну упакованную запись), то СУБД помечает страницу как занятую и запрещает
добавление в неё новых записей до тех пор, пока свободного места на странице не
станет больше, чем задано параметром PCTFREE
(значение параметра задается
владельцем создаваемой таблицы в SQL-операторе создания таблицы и указывает,
при каком проценте неиспользуемого в странице места она считается свободной).
Значение параметра PCTFREE
зависит от средней длины упакованной записи.
Пример вычисления параметров PCTFILL и PCTFREE см. в документе «Рекомендации по настройке СУБД ЛИНТЕР».