
OpenEdge 12.8 LTS – многопоточные проверки индексов
В версии OpenEdge 12.8 LTS вдминистраторы баз данных получили возможность запускать проверки индекса с использованием нескольких потоков для верификации записей по каждому ключу (Validate record for each key) и проверки последовательности ключей (Validate key order).
В настоящее время поддержка многопоточности реализована для вариантов 2, 3 и 4 онлайновой проверки индекса. Оба этих варианта автоматически используют несколько потоков, если это позволяет аппаратное и программное обеспечение системы. По умолчанию при запуске утилиты PROUTIL IDXCHECK активируется вариант 4 проверки индекса, который осуществляет проверку порядка ключей (Validate key order). Рекомендуется также активировать вариант 3 проверки индекса, который выполняет верификацию записей по каждому ключу (Validate record for each key), при каждом запуске PROUTIL IDXCHECK.
Для удобства пользователей интервал между сообщениями о ходе проверки индекса увеличен с каждых 10 000 ключей до каждых 500 000 ключей. Следует отметить, что, аналогично другим многопоточным утилитам, многопоточные проверки индекса не поддерживают обработку word-индексов.
Общий синтаксис утилиты:
proutil db-name -C idxcheck [ all | table [owner-name.]table-name [ partition partition-name | composite initial] | area area-name | schema schema-owner] [ tenant tenant-name | group group-name | shared ] [ -RO ] [ -thread 0 | 1 ] [ -threadnum num-threads ] [ -lkwtmo seconds ]
В случае неуказания параметров all, table, area или schema, будет отображено следующее меню:
Index Check Utility =================== Select one of the following: All (a/A) - Check all the indexes Some (s/S) - Check only some of the indexes By Area (r/R) - Check indexes in selected areas By Schema (c/C) - Check indexes by schema owners By Table (t/T) - Check indexes in selected tables By Partition (p/P) - Choose indexes in selected table partitions ------------------- Validation (o/O) - Change validation options Multi-Tenancy (m/M) - Choose tenants or groups ------------------- Quit (q/Q) - Quit, do not Check Enter your selection:
Для модификации параметров валидации, осуществляемой с использованием утилиты PROUTIL IDXCHECK, необходимо в главном меню выбрать опцию Validation (o/O). Это действие приведет к открытию следующего подменю:
Validation Options ---------------- * 1 - Validate physical consistency of index blocks * 2 - Validate keys for each record 3 - Validate record for each key * 4 - Validate key order 5 - Validate tree 6 - Validate index against free cluster L - Lock tables during the check R - Reset error limit, current: 500 C - Continue to execute Q - Quit
Новые параметры, регулирующие работу многопоточной проверки индексов:
- -thread 0 | 1
Данный параметр активирует многопоточную проверку индекса, которая по умолчанию включена для параметров 2, 3 и 4. Значение 0 указывает на отсутствие многопоточности, в то время как значение 1 активирует многопоточную проверку. Использование нескольких потоков позволяет выполнять последовательные операции параллельно, что способствует повышению производительности. Потоки не создаются в процессе проверки индекса в автономном режиме. Для параметра 2 потоки не создаются для объектов с небольшими таблицами. Параметры 3 и 4 не используют потоки для word-индексов или индексов небольшого размера.
- -threadnum num-thread
Этот необязательный параметр устанавливает максимальное количество потоков, создаваемых основным процессом для многопоточной проверки индекса. Если значение параметра не указано, а количество процессоров составляет:
– Меньше шести — то количество процессоров равно максимальному числу потоков.
– Равно или больше шести — то максимальное число потоков по умолчанию равно шести.
Эти настройки предотвращают перегрузку системы. Максимальное количество потоков, допустимое для параметра -threadnum, соответствует числу доступных процессоров. Если указано значение, превышающее количество процессоров, параметр -threadnum будет автоматически установлен на количество процессоров. Для параметров 3 и 4 фактическое количество запущенных потоков может отличаться от указанного, поскольку утилита проверки индекса определяет их на основе структуры индексных деревьев. Если все ключевые элементы в индексом дереве идентичны, утилита запускает проверку в однопоточном режиме.
Дополнительную информацию можно найти в официальной документации в разделе, посвященном квалификаторам утилиты PROUTIL IDXCHECK.