Сжатие индексов
С течением времени локальные индексы по разным причинам становятся фрагментированными, что приводит к неэффективному использованию дискового пространства. В этом случае вы должны выполнить сжатие индексов для того, чтобы повысить производительность запросов к таблице.
Для сжатия локальных индексов в секционированной таблице в онлайн применяется утилита PROUTIL IDXCOMPACT:
proutil db-name -C idxcompact table-name.index-name partition partition-name n
Здесь, n – это коэффициент сжатия в процентах, по умолчанию равный 80%. Допустимые значения от 50 до 100 %%.
Утилита PROUTIL IDXCOMPACT работает следующим образом:
- Убирает удалённые индексные ключи из индексных блоков.
- Сжимает не листовые уровни B-дерева, начиная от корня до листовых уровней.
- Сжимает индексные ключи на листовых уровнях.
Примечание. Поскольку утилита сжатия индексов блокирует за один раз только до трёх блоков на короткий период, то она почти не блокирует пользователей. Конечные пользователи по-прежнему могут использовать уплотняемый локальный индекс для чтения и записи данных в соответствующие им секции таблицы.
При работе с PROUTIL IDXCOMPACT следуйте следующим рекомендациям:
- Для интенсивно пишущих приложений сжимайте локальные индексы с коэффициентом сжатия до 80%.
- Для интенсивно читающих приложений сжимайте локальные индексы с коэффициентом сжатия до 100%.
Пример. Следующая команда PROUTIL IDXCOMPACT выполнит сжатие локального индекса OrderDateLocalIdx в секции Order_2014 таблицы Order до уровня 80%:
proutil sportsco -C idxcompact order.orderdatelocalidx partition order_2014 80