Условия для изменения OIT и OAT

We use cookies. Read the Privacy and Cookie Policy

Условия для изменения OIT и OAT

Каждый раз, когда сервер стартует другую транзакцию, он проверяет состояние идентификаторов транзакций, которые он хранит в TSB, удаляя те, чье состояние было изменено на "подтвержденное", и заново вычисляет значения OIT и OAT. Он сравнивает их с хранимыми значениями в странице базы данных и при необходимости включает их в данные, сопровождающие запись в заголовок базы данных идентификатора новой "следующей транзакции".

Значение OAT будет увеличиваться, если транзакции будут достаточно короткими, чтобы предохранять активные транзакции и мусор от самых новых транзакций - от нагромождения, OIT будет увеличиваться, пока клиентские процессы подтверждают свою работу в большей степени, нежели отменяют их или теряют в результате аварий. При этих условиях производительность базы данных будет хорошей.

Застрявшая OAT хуже, чем застрявшая OIT. В системе с хорошей производительностью разница между OAT и самой новой транзакцией должна приблизительно равняться

количеству запущенных клиентских процессов, умноженному на среднее количество выполняющихся транзакций в каждом процессе. Выполняйте чистку базы данных во внерабочее время или используйте автоматическую чистку или оба варианта.

В главе 27 вы найдете несколько стратегий клиентских приложений для оптимизации OIT и OAT.

"Зазор"

"Зазор" - еще одна часть Firebird. Он означает разницу между OIT и OAT. Зазор будет небольшим в сравнении с общим количеством транзакций или, в идеале, нулем. При этих условиях разумно предположить, что не существует подвешенных транзакций, что привело бы к раздуванию TSB и большому разрастанию инвентарных страниц транзакций.

Собственно сам зазор не ухудшает производительность. Зазор является индикатором большого объема накладных расходов, добавляемых системой управления транзакциями к обработке базы данных - чрезмерное использование и фрагментация памяти, избыточное количество читаемых страниц в процессе поиска и выделяемых страниц в процессе изменения и добавления данных. Решение и устранение проблем ухудшения производительности заключается в уменьшении зазора.