Доступные версии документации

Информация о состоянии страницы файла

Функция

Предоставление информации о текущем состоянии заданной страницы файла таблицы.

Спецификация
 
Общие правила
  1. Параметр <идентификатор таблицы> задает системный идентификатор таблицы, о состоянии страниц которой запрашивается информация. Системные идентификаторы таблиц хранятся в системной таблице $$$SYSRL, столбец $$$S11.

  2. Параметр <тип файла> задает тип файла таблицы:

    • 0 – индексный файл;

    • 1 – файл данных;

    • 2 – файл BLOB-данных.

  3. Параметр <номер файла> определяет порядковый номер файла заданного типа (начиная с 1).

  4. Параметр <номер страницы> определяет порядковый номер страницы в заданном файле (начиная с 1).

  5. Параметр <тип информации> определяет тип запрашиваемой о файле информации. Тип данных параметра – CHAR, значения параметра являются регистронезависимыми.

  6. Допустимые значения параметра приведены в пункте «Возвращаемое значение».

  7. Аргументы могут быть заданы <SQL-параметром>, который должен содержать спецификацию типа данных параметра.

    select linter_page_info(? (int), ? (int), ? (int), ? (int),  ? (char(15)));
    173
    1
    1
    1
    used_size
    |       4096|
Возвращаемое значение
  1. Тип возвращаемого значения – INTEGER.

  2. Возвращаемое значение зависит от параметра <тип информации>.

Значение параметра
<тип информации>
 Возвращаемое значение
used_size Размер занятой части страницы в байтах (для страниц битовой карты и конвертера – размер всей страницы)
free_size Размер свободной части страницы в байтах
status Битовая маска состояния страницы (первый бит): 1 – страница занята, 0 – свободна
  1. Если хотя бы один аргумент равен NULL-значению, результат NULL-значение.

Примеры
  1. select linter_page_info ($$$s11,1,1,2,'free_size'),
           linter_page_info ($$$s11,1,1,2,'used_size')
      from $$$sysrl
     where $$$s13='AUTO';
    | 80|4016|

  2. Проверить, является ли заданная страница свободной:

    select decode(linter_page_info ($$$s11,1,1,2,'status'), 1,'Нет',0, 'Да')
    from $$$sysrl where $$$s13='AUTO';
    |Нет|

Заметили ошибку?
Выделите текст и нажмите Ctrl + Enter