Информация о фразовом индексе

Функция

Предоставление информации о ресурсах, используемых при работе с фразовым индексом.

Спецификация
 
< спецификация таблицы >::=
имя таблицы
|символьный литерал
|идентификатор таблицы
< спецификация столбца >::=
имя столбца
|символьный литерал
|идентификатор столбца
Общие правила
  1. < Идентификатор таблицы > – значение поля $$$S11 в системной таблице $$$SYSRL.

  2. < Идентификатор столбца > – значение поля $$$S22 в системной таблице $$$ATTRI.

  3. < Спецификация столбца > должна ссылаться на столбец, по которому создан фразовый индекс.

  4. Параметр < тип информации > определяет тип запрашиваемой о фразовом индексе информации. Допустимые значения параметра приведены в пункте «Возвращаемое значение».

  5. Функция предоставляет информацию о фактических размерах ресурсов, используемых при выполнении поисковых операций с фразовым индексом. Анализ возвращаемой функцией информации по всем столбцам с фразовым индексом всех таблиц БД позволяет оценить правильность задания значения ключей запуска pcontcache, pbvcache ядра СУБД. Например, рекомендуется задавать значение ключа pcontcache не меньше суммы всех вычисленных в БД значений file_size (для поиска может быть достаточно только w2d_packed), а ключа pbvcache – не меньше суммы всех вычисленных в БД значений s2w_unpacked.

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

    select lin_index_info(? (char(10)), ? (char(20)), 'file_size')
      from $$$SYSRL, $$$ATTRI
     where $$$S11 = $$$S21 
       and $$$S13 = ? (char(10)) and $$$S23 = ?(char(20));
    TST
    COL_INDEX
    TST
    COL_INDEX

Возвращаемое значение
  1. Тип возвращаемого значения – INTEGER (при отсутствии фразового индекса для столбца возвращается NULL-значение).

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

Значение параметра
< тип информации >
 Возвращаемое значение
s2w_unpacked Размер (в страницах 4 Кбайта) распакованной структуры индекса буквосочетаний (бит-векторный кэш)
w2d_unpacked Размер (в страницах 4 Кбайта) распакованной структуры индекса соответствия слов документу (не кэшируется в распакованном виде)
s2w_packed Размер (в страницах 4 Кбайта) упакованной структуры индекса буквосочетаний (контейнерный кэш)
w2d_packed Размер (в страницах 4 Кбайта) упакованной структуры индекса соответствия слов документу (контейнерный кэш)
file_size Размер (в страницах 4 Кбайта) файла контейнера фразового индекса
file_id Идентификатор индексного файла фразового индекса (char(8))
dict_size Суммарный объём словаря фразового индекса в байтах
word_count Количество слов в словаре фразового индекса
hast_size Суммарный объём вспомогательной части фразового индекса (для быстрого удаления документов и для поиска с расстояниями между словами)
Примеры
Выполняется с помощью утилиты inl:
create or replace table tst(col_index blob default filter DOCRTF2TEXT);
insert into tst values(NULL);
blob insert column=1  file=sql.pdf
CREATE OR REPLACE PHRASE deferred INDEX col_index ON tst;
REBUILD PHRASE INDEX col_index ON tst;
1)
Два нижеследующих запроса идентичны:
select lin_index_info('TST', 'COL_INDEX', 's2w_unpacked'),
       lin_index_info('TST', 'COL_INDEX', 'w2d_unpacked'),
       lin_index_info('TST', 'COL_INDEX', 's2w_packed'),
       lin_index_info('TST', 'COL_INDEX', 'w2d_packed'),
       lin_index_info('TST', 'COL_INDEX', 'file_size'),
       lin_index_info('TST', 'COL_INDEX', 'file_id')
  from $$$SYSRL, $$$ATTRI
 where $$$S11 = $$$S21 and $$$S13 = 'TST' and $$$S23 = 'COL_INDEX';
|       1543|       1256|         27|         10|         48|      66310|

select lin_index_info($$$S11, $$$S22, 's2w_unpacked'),
       lin_index_info($$$S11, $$$S22, 'w2d_unpacked'),
       lin_index_info($$$S11, $$$S22, 's2w_packed'),
       lin_index_info($$$S11, $$$S22, 'w2d_packed'),
       lin_index_info($$$S11, $$$S22, 'file_size'),
       lin_index_info($$$S11, $$$S22, 'file_id')
  from $$$SYSRL, $$$ATTRI
 where $$$S11 = $$$S21 
   and $$$S13 = 'TST' 
   and $$$S23 = 'COL_INDEX';
|       1543|       1256|         27|         10|         48|      66310|
2)
select sum(lin_index_info($$$S13, $$$S23, 'file_size')) pcontcache,
       sum(lin_index_info($$$S13, $$$S23, 's2w_unpacked')) pbvcache
  from $$$SYSRL, $$$ATTRI
 where $$$S11 = $$$S21;
3)
select * from
(
 select
  $$$S13 tab,
  $$$S23 col,
  lin_index_info($$$S13, $$$S23, 'file_id')      fileid,
  lin_index_info($$$S13, $$$S23, 'file_size')    pcontcache,
  lin_index_info($$$S13, $$$S23, 's2w_unpacked') pbvcache
 from $$$SYSRL, $$$ATTRI
 where $$$S11 = $$$S21
) where pcontcache is not null;