Файлы данных

Страницы файла данных содержат упакованные записи таблицы.

Запись в таблице идентифицируется системным номером записи (ROWID). Место удаленной записи, а также ее системный номер повторно используются СУБД. Записи хранятся в неупорядоченном виде.

Правила упаковки данных

  1. Упаковка не распространяется на BLOB-данные и внешние файлы (EXTFILE).

  2. В символьных значениях усекаются последние пробелы, а при упаковке значений прочих типов данных отбрасываются последние нулевые байты. Например, целые числа со значениями от 0 до 255 будут занимать только один байт, целые числа от 256 до 32767 – 2 байта и т.д.

  3. Если значение столбца нулевое (или состоит из одних пробелов), то в упакованной записи на соответствующем месте будет только первый байт или символ. Остальные байты (символы) значения в упакованной записи отсутствуют. При выборке таких значений из БД они преобразуются в первоначальный вид.

  4. Для оптимизации работы ядра СУБД при вставке данных рекомендуется установить процент ожидаемого размера упакованной записи по сравнению с неупакованной (параметр PCTFILL, указывается при создании таблицы, по умолчанию равен 100%).

Правила размещения данных

  1. При размещении данных рекомендуется установить процентный порог свободного места страниц файла данных, при котором страница будет помечена как занятая (параметр PCTFREE, указывается при создании таблицы, значение по умолчанию равно 0%). Параметр PCTFREE предназначен для предотвращения фрагментации в страницах данных.

  2. Для размещения в таблице вновь поступившей записи определяется (через битовую карту состояния страниц файла данных) первая страница (с учетом параметра PCTFREE), в которую можно разместить упакованную запись (с учетом параметра PCTFILL), либо добавляется новая страница.

  3. Страница помечается, как занятая до тех пор, пока не будет иметь более чем PCTFREE процентов свободного пространства. Таким образом, высокий процент заполнения страниц файла данных (параметр PCTFILL) минимизирует файловое пространство, занятое данными, ускоряя поиск данных, но замедляет добавление и модификацию данных. Низкий процент заполнения страниц файла данных приводит к неэффективному размещению данных, но может ускорить загрузку и модификацию данных.