Перемещение индексов
Для максимальной производительности индексы таблицы рекомендуется перемещать в новую область хранения одновременно с перемещением таблицы утилитой PROUTIL TABLEMOVE. Но если перенос таблицы не требуется, а в ней обнаружен интенсивно используемый индекс, то для улучшения производительности базы данных такой индекс можно отдельно перенести в персональную область хранения. Для перемещения индекса в онлайн применяется утилита PROUTIL IDXMOVE.
Синтаксис:
proutil db-name -C idxmove index-name area-name
Утилита выполняет следующее:
- Строит новый индекс в новой области хранения. Старый индекс на это время сохраняется в старой области, а пользователи могут продолжать использовать его для операций чтения.
- Удаляет все блоки старого индекса после завершения построения нового. Во время этой фазы все операции с индексом блокируются пока новый индекс не станет доступным. Пользователи, которые попытаются использовать этот индексы будут блокированы до завершения фазы.
Предположим, что в базе данных sports интенсивно используется индекс OrderDate таблицы Order, а все индексы таблицы хранятся в одной области OrderData. Необходимо переместить индекс OrderDate в новую область хранения.
Следующий пример команды PROUTIL IDXMOVE выполнит перемещение индекса OrderDate в область хранения OrderIndex2:
proutil sports -C idxmove order.orderdate OrderIndex2