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

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

Функция

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

Спецификация
 
<спецификация таблицы>::=
имя таблицы
|символьный литерал
|идентификатор таблицы
<спецификация столбца>::=
имя столбца
|символьный литерал
|идентификатор столбца
Общие правила
  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;
Заметили ошибку?
Выделите текст и нажмите Ctrl + Enter