четверг, 31 января 2008 г.

Немного про btscanner

Итак, начну с того что настройки сканера по умолчанию (threshold 5000 и тип сканирования leaf scan) зачастую приводят к высокой нагрузке в системах где преобладают модификации данных. При таких настройках работа btscanner существенно нагружает процессоры и диски сервера, что совсем не в лучшую сторону сказывается на производительности пользовательских транзакций.
Информикс располагает двумя (начиная с версии 9.4) и тремя (начиная с версии 10) способами очистки индексных страниц:

1 способ это leaf scan, при котором каждая индексная страница перед очисткой загружается в буферный пул информикса. Эта особенность работы и является основным недостатком данного способа:
при больших размерах индексов происходит активное вытеснение страниц данных и индексов из буферного пула страницами очищаемого индекса, что в свою очередь приводит к высокой нагрузке на дисковую подсистему.

2 способ это range scan. Основное преимущество этого способа очистки индексов состоит в том что в буферный пул индексные страницы не загружаются. Вместо этого используется пул в виртуальном сегменте информикса, т.н. "легкое сканирование". В результате нет конкуренции за буферный пул между сканером и пользовательскими сессиями. Ограничение работы range scan: таким способом очищаются только detached-индексы, т.е. индексы находящие ся в собственном разделе (такие индексы появились впервые в версии 9.30). Attached-индексы как обычно будут очищаться методом leaf scan.

3 способ, который появился впервые в 10 версии информикса называется ALICE (Adaptive Linear Index Cleaning). Этот способ использует битовые карты для очистки индекса. Это позволяет загружать только определенные группы страниц индекса для очистки, что очень хорошо влияет на производительность btscanner.

Т.о. самым производительным является для btscanner режим работы ALICE. Тем не менее это новый тип сканирования и в нем могут быть свои баги.

В документации к Информиксу информации про работу и настройку btscanner минимум, то что я написал выше это сборка информации из разных источников в интернет.

2 комментария:

Анонимный комментирует...

"detached-индексы, т.е. индексы находящие ся в собственном разделе, при создании которых было указано "In dbspace"
Это не совсем верно. Отсоединенные индексы создаются по умолчанию с версии 9.30 и вовсе не требуют обязательного указания "In dbspace".

Alex aka Andron комментирует...

Да, с версии 9.3 Информикс создает detached-индексы по умолчанию, даже если не указан dbspace. Attached-индексы создаются только в более ранних версиях. Исправил сообщение.